using System;

namespace Ndo.FM
{
	public delegate void Method();
	public delegate void Method<P1>(P1 p1);
	public delegate void Method<P1, P2>(P1 p1, P2 p2);
	public delegate void Method<P1, P2, P3>(P1 p1, P2 p2, P3 p3);
	public delegate void Method<P1, P2, P3, P4>(P1 p1, P2 p2, P3 p3, P4 p4);
	public delegate void Method<P1, P2, P3, P4, P5>(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5);
	public delegate void Method<P1, P2, P3, P4, P5, P6>(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6);
	public delegate void Method<P1, P2, P3, P4, P5, P6, P7>(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7);
	public delegate void Method<P1, P2, P3, P4, P5, P6, P7, P8>(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8);
	public delegate void Method<P1, P2, P3, P4, P5, P6, P7, P8, P9>(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9);
	public delegate void Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10);
	public delegate void Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11);
	public delegate void Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12);
	public delegate void Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13);
	public delegate void Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14);
	public delegate void Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15);
	public delegate void Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16);
	public class AMethod<P1>
	{
		public readonly Method<P1> F;
		public P1 Parameter1;
		public AMethod(Delegate f)
		{
			F = (Method<P1>)Delegate.CreateDelegate(typeof(Method<P1>), f.Target, f.Method);
		}
		public AMethod(Delegate f, P1 p1)
		{
			F = (Method<P1>)Delegate.CreateDelegate(typeof(Method<P1>), f.Target, f.Method);
			Parameter1 = p1;
		}
		public void Call()
		{
			F(Parameter1);
		}
		public static Method From(Delegate f, P1 p1)
		{
			return new AMethod<P1>(f, p1).Call;
		}
	}
	public class AMethod<P1, P2>
	{
		public readonly Method<P1, P2> F;
		public P1 Parameter1;
		public P2 Parameter2;
		public AMethod(Delegate f)
		{
			F = (Method<P1, P2>)Delegate.CreateDelegate(typeof(Method<P1, P2>), f.Target, f.Method);
		}
		public AMethod(Delegate f, P1 p1, P2 p2)
		{
			F = (Method<P1, P2>)Delegate.CreateDelegate(typeof(Method<P1, P2>), f.Target, f.Method);
			Parameter1 = p1;
			Parameter2 = p2;
		}
		public void Call()
		{
			F(Parameter1, Parameter2);
		}
		public static Method From(Delegate f, P1 p1, P2 p2)
		{
			return new AMethod<P1, P2>(f, p1, p2).Call;
		}
		public void Call1(P1 p1)
		{
			F(p1, Parameter2);
		}
		public static Method<P1> At1(Delegate f, P2 p2)
		{
			return new AMethod<P1, P2>(f, default(P1), p2).Call1;
		}
		public static Method<P1> AtBegin(Delegate f, P2 p2)
		{
			return new AMethod<P1, P2>(f, default(P1), p2).Call1;
		}
		public void Call2(P2 p2)
		{
			F(Parameter1, p2);
		}
		public static Method<P2> At2(P1 p1, Delegate f)
		{
			return new AMethod<P1, P2>(f, p1, default(P2)).Call2;
		}
		public static Method<P2> AtEnd(P1 p1, Delegate f)
		{
			return new AMethod<P1, P2>(f, p1, default(P2)).Call2;
		}
	}
	public class AMethod<P1, P2, P3>
	{
		public readonly Method<P1, P2, P3> F;
		public P1 Parameter1;
		public P2 Parameter2;
		public P3 Parameter3;
		public AMethod(Delegate f)
		{
			F = (Method<P1, P2, P3>)Delegate.CreateDelegate(typeof(Method<P1, P2, P3>), f.Target, f.Method);
		}
		public AMethod(Delegate f, P1 p1, P2 p2, P3 p3)
		{
			F = (Method<P1, P2, P3>)Delegate.CreateDelegate(typeof(Method<P1, P2, P3>), f.Target, f.Method);
			Parameter1 = p1;
			Parameter2 = p2;
			Parameter3 = p3;
		}
		public void Call()
		{
			F(Parameter1, Parameter2, Parameter3);
		}
		public static Method From(Delegate f, P1 p1, P2 p2, P3 p3)
		{
			return new AMethod<P1, P2, P3>(f, p1, p2, p3).Call;
		}
		public void Call1(P1 p1)
		{
			F(p1, Parameter2, Parameter3);
		}
		public static Method<P1> At1(Delegate f, P2 p2, P3 p3)
		{
			return new AMethod<P1, P2, P3>(f, default(P1), p2, p3).Call1;
		}
		public static Method<P1> AtBegin(Delegate f, P2 p2, P3 p3)
		{
			return new AMethod<P1, P2, P3>(f, default(P1), p2, p3).Call1;
		}
		public void Call1(P1 p1, P2 p2)
		{
			F(p1, p2, Parameter3);
		}
		public static Method<P1, P2> At1(Delegate f, P3 p3)
		{
			return new AMethod<P1, P2, P3>(f, default(P1), default(P2), p3).Call1;
		}
		public static Method<P1, P2> AtBegin(Delegate f, P3 p3)
		{
			return new AMethod<P1, P2, P3>(f, default(P1), default(P2), p3).Call1;
		}
		public void Call2(P2 p2)
		{
			F(Parameter1, p2, Parameter3);
		}
		public static Method<P2> At2(P1 p1, Delegate f, P3 p3)
		{
			return new AMethod<P1, P2, P3>(f, p1, default(P2), p3).Call2;
		}
		public void Call2(P2 p2, P3 p3)
		{
			F(Parameter1, p2, p3);
		}
		public static Method<P2, P3> At2(P1 p1, Delegate f)
		{
			return new AMethod<P1, P2, P3>(f, p1, default(P2), default(P3)).Call2;
		}
		public static Method<P2, P3> AtEnd(P1 p1, Delegate f)
		{
			return new AMethod<P1, P2, P3>(f, p1, default(P2), default(P3)).Call2;
		}
		public void Call3(P3 p3)
		{
			F(Parameter1, Parameter2, p3);
		}
		public static Method<P3> At3(P1 p1, P2 p2, Delegate f)
		{
			return new AMethod<P1, P2, P3>(f, p1, p2, default(P3)).Call3;
		}
		public static Method<P3> AtEnd(P1 p1, P2 p2, Delegate f)
		{
			return new AMethod<P1, P2, P3>(f, p1, p2, default(P3)).Call3;
		}
	}
	public class AMethod<P1, P2, P3, P4>
	{
		public readonly Method<P1, P2, P3, P4> F;
		public P1 Parameter1;
		public P2 Parameter2;
		public P3 Parameter3;
		public P4 Parameter4;
		public AMethod(Delegate f)
		{
			F = (Method<P1, P2, P3, P4>)Delegate.CreateDelegate(typeof(Method<P1, P2, P3, P4>), f.Target, f.Method);
		}
		public AMethod(Delegate f, P1 p1, P2 p2, P3 p3, P4 p4)
		{
			F = (Method<P1, P2, P3, P4>)Delegate.CreateDelegate(typeof(Method<P1, P2, P3, P4>), f.Target, f.Method);
			Parameter1 = p1;
			Parameter2 = p2;
			Parameter3 = p3;
			Parameter4 = p4;
		}
		public void Call()
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4);
		}
		public static Method From(Delegate f, P1 p1, P2 p2, P3 p3, P4 p4)
		{
			return new AMethod<P1, P2, P3, P4>(f, p1, p2, p3, p4).Call;
		}
		public void Call1(P1 p1)
		{
			F(p1, Parameter2, Parameter3, Parameter4);
		}
		public static Method<P1> At1(Delegate f, P2 p2, P3 p3, P4 p4)
		{
			return new AMethod<P1, P2, P3, P4>(f, default(P1), p2, p3, p4).Call1;
		}
		public static Method<P1> AtBegin(Delegate f, P2 p2, P3 p3, P4 p4)
		{
			return new AMethod<P1, P2, P3, P4>(f, default(P1), p2, p3, p4).Call1;
		}
		public void Call1(P1 p1, P2 p2)
		{
			F(p1, p2, Parameter3, Parameter4);
		}
		public static Method<P1, P2> At1(Delegate f, P3 p3, P4 p4)
		{
			return new AMethod<P1, P2, P3, P4>(f, default(P1), default(P2), p3, p4).Call1;
		}
		public static Method<P1, P2> AtBegin(Delegate f, P3 p3, P4 p4)
		{
			return new AMethod<P1, P2, P3, P4>(f, default(P1), default(P2), p3, p4).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3)
		{
			F(p1, p2, p3, Parameter4);
		}
		public static Method<P1, P2, P3> At1(Delegate f, P4 p4)
		{
			return new AMethod<P1, P2, P3, P4>(f, default(P1), default(P2), default(P3), p4).Call1;
		}
		public static Method<P1, P2, P3> AtBegin(Delegate f, P4 p4)
		{
			return new AMethod<P1, P2, P3, P4>(f, default(P1), default(P2), default(P3), p4).Call1;
		}
		public void Call2(P2 p2)
		{
			F(Parameter1, p2, Parameter3, Parameter4);
		}
		public static Method<P2> At2(P1 p1, Delegate f, P3 p3, P4 p4)
		{
			return new AMethod<P1, P2, P3, P4>(f, p1, default(P2), p3, p4).Call2;
		}
		public void Call2(P2 p2, P3 p3)
		{
			F(Parameter1, p2, p3, Parameter4);
		}
		public static Method<P2, P3> At2(P1 p1, Delegate f, P4 p4)
		{
			return new AMethod<P1, P2, P3, P4>(f, p1, default(P2), default(P3), p4).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4)
		{
			F(Parameter1, p2, p3, p4);
		}
		public static Method<P2, P3, P4> At2(P1 p1, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4>(f, p1, default(P2), default(P3), default(P4)).Call2;
		}
		public static Method<P2, P3, P4> AtEnd(P1 p1, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4>(f, p1, default(P2), default(P3), default(P4)).Call2;
		}
		public void Call3(P3 p3)
		{
			F(Parameter1, Parameter2, p3, Parameter4);
		}
		public static Method<P3> At3(P1 p1, P2 p2, Delegate f, P4 p4)
		{
			return new AMethod<P1, P2, P3, P4>(f, p1, p2, default(P3), p4).Call3;
		}
		public void Call3(P3 p3, P4 p4)
		{
			F(Parameter1, Parameter2, p3, p4);
		}
		public static Method<P3, P4> At3(P1 p1, P2 p2, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4>(f, p1, p2, default(P3), default(P4)).Call3;
		}
		public static Method<P3, P4> AtEnd(P1 p1, P2 p2, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4>(f, p1, p2, default(P3), default(P4)).Call3;
		}
		public void Call4(P4 p4)
		{
			F(Parameter1, Parameter2, Parameter3, p4);
		}
		public static Method<P4> At4(P1 p1, P2 p2, P3 p3, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4>(f, p1, p2, p3, default(P4)).Call4;
		}
		public static Method<P4> AtEnd(P1 p1, P2 p2, P3 p3, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4>(f, p1, p2, p3, default(P4)).Call4;
		}
	}
	public class AMethod<P1, P2, P3, P4, P5>
	{
		public readonly Method<P1, P2, P3, P4, P5> F;
		public P1 Parameter1;
		public P2 Parameter2;
		public P3 Parameter3;
		public P4 Parameter4;
		public P5 Parameter5;
		public AMethod(Delegate f)
		{
			F = (Method<P1, P2, P3, P4, P5>)Delegate.CreateDelegate(typeof(Method<P1, P2, P3, P4, P5>), f.Target, f.Method);
		}
		public AMethod(Delegate f, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
		{
			F = (Method<P1, P2, P3, P4, P5>)Delegate.CreateDelegate(typeof(Method<P1, P2, P3, P4, P5>), f.Target, f.Method);
			Parameter1 = p1;
			Parameter2 = p2;
			Parameter3 = p3;
			Parameter4 = p4;
			Parameter5 = p5;
		}
		public void Call()
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5);
		}
		public static Method From(Delegate f, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
		{
			return new AMethod<P1, P2, P3, P4, P5>(f, p1, p2, p3, p4, p5).Call;
		}
		public void Call1(P1 p1)
		{
			F(p1, Parameter2, Parameter3, Parameter4, Parameter5);
		}
		public static Method<P1> At1(Delegate f, P2 p2, P3 p3, P4 p4, P5 p5)
		{
			return new AMethod<P1, P2, P3, P4, P5>(f, default(P1), p2, p3, p4, p5).Call1;
		}
		public static Method<P1> AtBegin(Delegate f, P2 p2, P3 p3, P4 p4, P5 p5)
		{
			return new AMethod<P1, P2, P3, P4, P5>(f, default(P1), p2, p3, p4, p5).Call1;
		}
		public void Call1(P1 p1, P2 p2)
		{
			F(p1, p2, Parameter3, Parameter4, Parameter5);
		}
		public static Method<P1, P2> At1(Delegate f, P3 p3, P4 p4, P5 p5)
		{
			return new AMethod<P1, P2, P3, P4, P5>(f, default(P1), default(P2), p3, p4, p5).Call1;
		}
		public static Method<P1, P2> AtBegin(Delegate f, P3 p3, P4 p4, P5 p5)
		{
			return new AMethod<P1, P2, P3, P4, P5>(f, default(P1), default(P2), p3, p4, p5).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3)
		{
			F(p1, p2, p3, Parameter4, Parameter5);
		}
		public static Method<P1, P2, P3> At1(Delegate f, P4 p4, P5 p5)
		{
			return new AMethod<P1, P2, P3, P4, P5>(f, default(P1), default(P2), default(P3), p4, p5).Call1;
		}
		public static Method<P1, P2, P3> AtBegin(Delegate f, P4 p4, P5 p5)
		{
			return new AMethod<P1, P2, P3, P4, P5>(f, default(P1), default(P2), default(P3), p4, p5).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4)
		{
			F(p1, p2, p3, p4, Parameter5);
		}
		public static Method<P1, P2, P3, P4> At1(Delegate f, P5 p5)
		{
			return new AMethod<P1, P2, P3, P4, P5>(f, default(P1), default(P2), default(P3), default(P4), p5).Call1;
		}
		public static Method<P1, P2, P3, P4> AtBegin(Delegate f, P5 p5)
		{
			return new AMethod<P1, P2, P3, P4, P5>(f, default(P1), default(P2), default(P3), default(P4), p5).Call1;
		}
		public void Call2(P2 p2)
		{
			F(Parameter1, p2, Parameter3, Parameter4, Parameter5);
		}
		public static Method<P2> At2(P1 p1, Delegate f, P3 p3, P4 p4, P5 p5)
		{
			return new AMethod<P1, P2, P3, P4, P5>(f, p1, default(P2), p3, p4, p5).Call2;
		}
		public void Call2(P2 p2, P3 p3)
		{
			F(Parameter1, p2, p3, Parameter4, Parameter5);
		}
		public static Method<P2, P3> At2(P1 p1, Delegate f, P4 p4, P5 p5)
		{
			return new AMethod<P1, P2, P3, P4, P5>(f, p1, default(P2), default(P3), p4, p5).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4)
		{
			F(Parameter1, p2, p3, p4, Parameter5);
		}
		public static Method<P2, P3, P4> At2(P1 p1, Delegate f, P5 p5)
		{
			return new AMethod<P1, P2, P3, P4, P5>(f, p1, default(P2), default(P3), default(P4), p5).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5)
		{
			F(Parameter1, p2, p3, p4, p5);
		}
		public static Method<P2, P3, P4, P5> At2(P1 p1, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5>(f, p1, default(P2), default(P3), default(P4), default(P5)).Call2;
		}
		public static Method<P2, P3, P4, P5> AtEnd(P1 p1, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5>(f, p1, default(P2), default(P3), default(P4), default(P5)).Call2;
		}
		public void Call3(P3 p3)
		{
			F(Parameter1, Parameter2, p3, Parameter4, Parameter5);
		}
		public static Method<P3> At3(P1 p1, P2 p2, Delegate f, P4 p4, P5 p5)
		{
			return new AMethod<P1, P2, P3, P4, P5>(f, p1, p2, default(P3), p4, p5).Call3;
		}
		public void Call3(P3 p3, P4 p4)
		{
			F(Parameter1, Parameter2, p3, p4, Parameter5);
		}
		public static Method<P3, P4> At3(P1 p1, P2 p2, Delegate f, P5 p5)
		{
			return new AMethod<P1, P2, P3, P4, P5>(f, p1, p2, default(P3), default(P4), p5).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5)
		{
			F(Parameter1, Parameter2, p3, p4, p5);
		}
		public static Method<P3, P4, P5> At3(P1 p1, P2 p2, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5>(f, p1, p2, default(P3), default(P4), default(P5)).Call3;
		}
		public static Method<P3, P4, P5> AtEnd(P1 p1, P2 p2, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5>(f, p1, p2, default(P3), default(P4), default(P5)).Call3;
		}
		public void Call4(P4 p4)
		{
			F(Parameter1, Parameter2, Parameter3, p4, Parameter5);
		}
		public static Method<P4> At4(P1 p1, P2 p2, P3 p3, Delegate f, P5 p5)
		{
			return new AMethod<P1, P2, P3, P4, P5>(f, p1, p2, p3, default(P4), p5).Call4;
		}
		public void Call4(P4 p4, P5 p5)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5);
		}
		public static Method<P4, P5> At4(P1 p1, P2 p2, P3 p3, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5>(f, p1, p2, p3, default(P4), default(P5)).Call4;
		}
		public static Method<P4, P5> AtEnd(P1 p1, P2 p2, P3 p3, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5>(f, p1, p2, p3, default(P4), default(P5)).Call4;
		}
		public void Call5(P5 p5)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5);
		}
		public static Method<P5> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5>(f, p1, p2, p3, p4, default(P5)).Call5;
		}
		public static Method<P5> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5>(f, p1, p2, p3, p4, default(P5)).Call5;
		}
	}
	public class AMethod<P1, P2, P3, P4, P5, P6>
	{
		public readonly Method<P1, P2, P3, P4, P5, P6> F;
		public P1 Parameter1;
		public P2 Parameter2;
		public P3 Parameter3;
		public P4 Parameter4;
		public P5 Parameter5;
		public P6 Parameter6;
		public AMethod(Delegate f)
		{
			F = (Method<P1, P2, P3, P4, P5, P6>)Delegate.CreateDelegate(typeof(Method<P1, P2, P3, P4, P5, P6>), f.Target, f.Method);
		}
		public AMethod(Delegate f, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
		{
			F = (Method<P1, P2, P3, P4, P5, P6>)Delegate.CreateDelegate(typeof(Method<P1, P2, P3, P4, P5, P6>), f.Target, f.Method);
			Parameter1 = p1;
			Parameter2 = p2;
			Parameter3 = p3;
			Parameter4 = p4;
			Parameter5 = p5;
			Parameter6 = p6;
		}
		public void Call()
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6);
		}
		public static Method From(Delegate f, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6>(f, p1, p2, p3, p4, p5, p6).Call;
		}
		public void Call1(P1 p1)
		{
			F(p1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6);
		}
		public static Method<P1> At1(Delegate f, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6>(f, default(P1), p2, p3, p4, p5, p6).Call1;
		}
		public static Method<P1> AtBegin(Delegate f, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6>(f, default(P1), p2, p3, p4, p5, p6).Call1;
		}
		public void Call1(P1 p1, P2 p2)
		{
			F(p1, p2, Parameter3, Parameter4, Parameter5, Parameter6);
		}
		public static Method<P1, P2> At1(Delegate f, P3 p3, P4 p4, P5 p5, P6 p6)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6>(f, default(P1), default(P2), p3, p4, p5, p6).Call1;
		}
		public static Method<P1, P2> AtBegin(Delegate f, P3 p3, P4 p4, P5 p5, P6 p6)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6>(f, default(P1), default(P2), p3, p4, p5, p6).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3)
		{
			F(p1, p2, p3, Parameter4, Parameter5, Parameter6);
		}
		public static Method<P1, P2, P3> At1(Delegate f, P4 p4, P5 p5, P6 p6)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6>(f, default(P1), default(P2), default(P3), p4, p5, p6).Call1;
		}
		public static Method<P1, P2, P3> AtBegin(Delegate f, P4 p4, P5 p5, P6 p6)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6>(f, default(P1), default(P2), default(P3), p4, p5, p6).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4)
		{
			F(p1, p2, p3, p4, Parameter5, Parameter6);
		}
		public static Method<P1, P2, P3, P4> At1(Delegate f, P5 p5, P6 p6)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6>(f, default(P1), default(P2), default(P3), default(P4), p5, p6).Call1;
		}
		public static Method<P1, P2, P3, P4> AtBegin(Delegate f, P5 p5, P6 p6)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6>(f, default(P1), default(P2), default(P3), default(P4), p5, p6).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
		{
			F(p1, p2, p3, p4, p5, Parameter6);
		}
		public static Method<P1, P2, P3, P4, P5> At1(Delegate f, P6 p6)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6>(f, default(P1), default(P2), default(P3), default(P4), default(P5), p6).Call1;
		}
		public static Method<P1, P2, P3, P4, P5> AtBegin(Delegate f, P6 p6)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6>(f, default(P1), default(P2), default(P3), default(P4), default(P5), p6).Call1;
		}
		public void Call2(P2 p2)
		{
			F(Parameter1, p2, Parameter3, Parameter4, Parameter5, Parameter6);
		}
		public static Method<P2> At2(P1 p1, Delegate f, P3 p3, P4 p4, P5 p5, P6 p6)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6>(f, p1, default(P2), p3, p4, p5, p6).Call2;
		}
		public void Call2(P2 p2, P3 p3)
		{
			F(Parameter1, p2, p3, Parameter4, Parameter5, Parameter6);
		}
		public static Method<P2, P3> At2(P1 p1, Delegate f, P4 p4, P5 p5, P6 p6)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6>(f, p1, default(P2), default(P3), p4, p5, p6).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4)
		{
			F(Parameter1, p2, p3, p4, Parameter5, Parameter6);
		}
		public static Method<P2, P3, P4> At2(P1 p1, Delegate f, P5 p5, P6 p6)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6>(f, p1, default(P2), default(P3), default(P4), p5, p6).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5)
		{
			F(Parameter1, p2, p3, p4, p5, Parameter6);
		}
		public static Method<P2, P3, P4, P5> At2(P1 p1, Delegate f, P6 p6)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6>(f, p1, default(P2), default(P3), default(P4), default(P5), p6).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
		{
			F(Parameter1, p2, p3, p4, p5, p6);
		}
		public static Method<P2, P3, P4, P5, P6> At2(P1 p1, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6)).Call2;
		}
		public static Method<P2, P3, P4, P5, P6> AtEnd(P1 p1, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6)).Call2;
		}
		public void Call3(P3 p3)
		{
			F(Parameter1, Parameter2, p3, Parameter4, Parameter5, Parameter6);
		}
		public static Method<P3> At3(P1 p1, P2 p2, Delegate f, P4 p4, P5 p5, P6 p6)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6>(f, p1, p2, default(P3), p4, p5, p6).Call3;
		}
		public void Call3(P3 p3, P4 p4)
		{
			F(Parameter1, Parameter2, p3, p4, Parameter5, Parameter6);
		}
		public static Method<P3, P4> At3(P1 p1, P2 p2, Delegate f, P5 p5, P6 p6)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6>(f, p1, p2, default(P3), default(P4), p5, p6).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5)
		{
			F(Parameter1, Parameter2, p3, p4, p5, Parameter6);
		}
		public static Method<P3, P4, P5> At3(P1 p1, P2 p2, Delegate f, P6 p6)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6>(f, p1, p2, default(P3), default(P4), default(P5), p6).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5, P6 p6)
		{
			F(Parameter1, Parameter2, p3, p4, p5, p6);
		}
		public static Method<P3, P4, P5, P6> At3(P1 p1, P2 p2, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6>(f, p1, p2, default(P3), default(P4), default(P5), default(P6)).Call3;
		}
		public static Method<P3, P4, P5, P6> AtEnd(P1 p1, P2 p2, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6>(f, p1, p2, default(P3), default(P4), default(P5), default(P6)).Call3;
		}
		public void Call4(P4 p4)
		{
			F(Parameter1, Parameter2, Parameter3, p4, Parameter5, Parameter6);
		}
		public static Method<P4> At4(P1 p1, P2 p2, P3 p3, Delegate f, P5 p5, P6 p6)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6>(f, p1, p2, p3, default(P4), p5, p6).Call4;
		}
		public void Call4(P4 p4, P5 p5)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, Parameter6);
		}
		public static Method<P4, P5> At4(P1 p1, P2 p2, P3 p3, Delegate f, P6 p6)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6>(f, p1, p2, p3, default(P4), default(P5), p6).Call4;
		}
		public void Call4(P4 p4, P5 p5, P6 p6)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, p6);
		}
		public static Method<P4, P5, P6> At4(P1 p1, P2 p2, P3 p3, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6>(f, p1, p2, p3, default(P4), default(P5), default(P6)).Call4;
		}
		public static Method<P4, P5, P6> AtEnd(P1 p1, P2 p2, P3 p3, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6>(f, p1, p2, p3, default(P4), default(P5), default(P6)).Call4;
		}
		public void Call5(P5 p5)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, Parameter6);
		}
		public static Method<P5> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P6 p6)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6>(f, p1, p2, p3, p4, default(P5), p6).Call5;
		}
		public void Call5(P5 p5, P6 p6)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6);
		}
		public static Method<P5, P6> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6>(f, p1, p2, p3, p4, default(P5), default(P6)).Call5;
		}
		public static Method<P5, P6> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6>(f, p1, p2, p3, p4, default(P5), default(P6)).Call5;
		}
		public void Call6(P6 p6)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6);
		}
		public static Method<P6> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6>(f, p1, p2, p3, p4, p5, default(P6)).Call6;
		}
		public static Method<P6> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6>(f, p1, p2, p3, p4, p5, default(P6)).Call6;
		}
	}
	public class AMethod<P1, P2, P3, P4, P5, P6, P7>
	{
		public readonly Method<P1, P2, P3, P4, P5, P6, P7> F;
		public P1 Parameter1;
		public P2 Parameter2;
		public P3 Parameter3;
		public P4 Parameter4;
		public P5 Parameter5;
		public P6 Parameter6;
		public P7 Parameter7;
		public AMethod(Delegate f)
		{
			F = (Method<P1, P2, P3, P4, P5, P6, P7>)Delegate.CreateDelegate(typeof(Method<P1, P2, P3, P4, P5, P6, P7>), f.Target, f.Method);
		}
		public AMethod(Delegate f, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			F = (Method<P1, P2, P3, P4, P5, P6, P7>)Delegate.CreateDelegate(typeof(Method<P1, P2, P3, P4, P5, P6, P7>), f.Target, f.Method);
			Parameter1 = p1;
			Parameter2 = p2;
			Parameter3 = p3;
			Parameter4 = p4;
			Parameter5 = p5;
			Parameter6 = p6;
			Parameter7 = p7;
		}
		public void Call()
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7);
		}
		public static Method From(Delegate f, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7>(f, p1, p2, p3, p4, p5, p6, p7).Call;
		}
		public void Call1(P1 p1)
		{
			F(p1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7);
		}
		public static Method<P1> At1(Delegate f, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7>(f, default(P1), p2, p3, p4, p5, p6, p7).Call1;
		}
		public static Method<P1> AtBegin(Delegate f, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7>(f, default(P1), p2, p3, p4, p5, p6, p7).Call1;
		}
		public void Call1(P1 p1, P2 p2)
		{
			F(p1, p2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7);
		}
		public static Method<P1, P2> At1(Delegate f, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7>(f, default(P1), default(P2), p3, p4, p5, p6, p7).Call1;
		}
		public static Method<P1, P2> AtBegin(Delegate f, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7>(f, default(P1), default(P2), p3, p4, p5, p6, p7).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3)
		{
			F(p1, p2, p3, Parameter4, Parameter5, Parameter6, Parameter7);
		}
		public static Method<P1, P2, P3> At1(Delegate f, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7>(f, default(P1), default(P2), default(P3), p4, p5, p6, p7).Call1;
		}
		public static Method<P1, P2, P3> AtBegin(Delegate f, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7>(f, default(P1), default(P2), default(P3), p4, p5, p6, p7).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4)
		{
			F(p1, p2, p3, p4, Parameter5, Parameter6, Parameter7);
		}
		public static Method<P1, P2, P3, P4> At1(Delegate f, P5 p5, P6 p6, P7 p7)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7>(f, default(P1), default(P2), default(P3), default(P4), p5, p6, p7).Call1;
		}
		public static Method<P1, P2, P3, P4> AtBegin(Delegate f, P5 p5, P6 p6, P7 p7)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7>(f, default(P1), default(P2), default(P3), default(P4), p5, p6, p7).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
		{
			F(p1, p2, p3, p4, p5, Parameter6, Parameter7);
		}
		public static Method<P1, P2, P3, P4, P5> At1(Delegate f, P6 p6, P7 p7)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7>(f, default(P1), default(P2), default(P3), default(P4), default(P5), p6, p7).Call1;
		}
		public static Method<P1, P2, P3, P4, P5> AtBegin(Delegate f, P6 p6, P7 p7)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7>(f, default(P1), default(P2), default(P3), default(P4), default(P5), p6, p7).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
		{
			F(p1, p2, p3, p4, p5, p6, Parameter7);
		}
		public static Method<P1, P2, P3, P4, P5, P6> At1(Delegate f, P7 p7)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), p7).Call1;
		}
		public static Method<P1, P2, P3, P4, P5, P6> AtBegin(Delegate f, P7 p7)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), p7).Call1;
		}
		public void Call2(P2 p2)
		{
			F(Parameter1, p2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7);
		}
		public static Method<P2> At2(P1 p1, Delegate f, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7>(f, p1, default(P2), p3, p4, p5, p6, p7).Call2;
		}
		public void Call2(P2 p2, P3 p3)
		{
			F(Parameter1, p2, p3, Parameter4, Parameter5, Parameter6, Parameter7);
		}
		public static Method<P2, P3> At2(P1 p1, Delegate f, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7>(f, p1, default(P2), default(P3), p4, p5, p6, p7).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4)
		{
			F(Parameter1, p2, p3, p4, Parameter5, Parameter6, Parameter7);
		}
		public static Method<P2, P3, P4> At2(P1 p1, Delegate f, P5 p5, P6 p6, P7 p7)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7>(f, p1, default(P2), default(P3), default(P4), p5, p6, p7).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5)
		{
			F(Parameter1, p2, p3, p4, p5, Parameter6, Parameter7);
		}
		public static Method<P2, P3, P4, P5> At2(P1 p1, Delegate f, P6 p6, P7 p7)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7>(f, p1, default(P2), default(P3), default(P4), default(P5), p6, p7).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
		{
			F(Parameter1, p2, p3, p4, p5, p6, Parameter7);
		}
		public static Method<P2, P3, P4, P5, P6> At2(P1 p1, Delegate f, P7 p7)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), p7).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			F(Parameter1, p2, p3, p4, p5, p6, p7);
		}
		public static Method<P2, P3, P4, P5, P6, P7> At2(P1 p1, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7)).Call2;
		}
		public static Method<P2, P3, P4, P5, P6, P7> AtEnd(P1 p1, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7)).Call2;
		}
		public void Call3(P3 p3)
		{
			F(Parameter1, Parameter2, p3, Parameter4, Parameter5, Parameter6, Parameter7);
		}
		public static Method<P3> At3(P1 p1, P2 p2, Delegate f, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7>(f, p1, p2, default(P3), p4, p5, p6, p7).Call3;
		}
		public void Call3(P3 p3, P4 p4)
		{
			F(Parameter1, Parameter2, p3, p4, Parameter5, Parameter6, Parameter7);
		}
		public static Method<P3, P4> At3(P1 p1, P2 p2, Delegate f, P5 p5, P6 p6, P7 p7)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7>(f, p1, p2, default(P3), default(P4), p5, p6, p7).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5)
		{
			F(Parameter1, Parameter2, p3, p4, p5, Parameter6, Parameter7);
		}
		public static Method<P3, P4, P5> At3(P1 p1, P2 p2, Delegate f, P6 p6, P7 p7)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7>(f, p1, p2, default(P3), default(P4), default(P5), p6, p7).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5, P6 p6)
		{
			F(Parameter1, Parameter2, p3, p4, p5, p6, Parameter7);
		}
		public static Method<P3, P4, P5, P6> At3(P1 p1, P2 p2, Delegate f, P7 p7)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), p7).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			F(Parameter1, Parameter2, p3, p4, p5, p6, p7);
		}
		public static Method<P3, P4, P5, P6, P7> At3(P1 p1, P2 p2, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7)).Call3;
		}
		public static Method<P3, P4, P5, P6, P7> AtEnd(P1 p1, P2 p2, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7)).Call3;
		}
		public void Call4(P4 p4)
		{
			F(Parameter1, Parameter2, Parameter3, p4, Parameter5, Parameter6, Parameter7);
		}
		public static Method<P4> At4(P1 p1, P2 p2, P3 p3, Delegate f, P5 p5, P6 p6, P7 p7)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7>(f, p1, p2, p3, default(P4), p5, p6, p7).Call4;
		}
		public void Call4(P4 p4, P5 p5)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, Parameter6, Parameter7);
		}
		public static Method<P4, P5> At4(P1 p1, P2 p2, P3 p3, Delegate f, P6 p6, P7 p7)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7>(f, p1, p2, p3, default(P4), default(P5), p6, p7).Call4;
		}
		public void Call4(P4 p4, P5 p5, P6 p6)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, p6, Parameter7);
		}
		public static Method<P4, P5, P6> At4(P1 p1, P2 p2, P3 p3, Delegate f, P7 p7)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7>(f, p1, p2, p3, default(P4), default(P5), default(P6), p7).Call4;
		}
		public void Call4(P4 p4, P5 p5, P6 p6, P7 p7)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7);
		}
		public static Method<P4, P5, P6, P7> At4(P1 p1, P2 p2, P3 p3, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7)).Call4;
		}
		public static Method<P4, P5, P6, P7> AtEnd(P1 p1, P2 p2, P3 p3, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7)).Call4;
		}
		public void Call5(P5 p5)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, Parameter6, Parameter7);
		}
		public static Method<P5> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P6 p6, P7 p7)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7>(f, p1, p2, p3, p4, default(P5), p6, p7).Call5;
		}
		public void Call5(P5 p5, P6 p6)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, Parameter7);
		}
		public static Method<P5, P6> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P7 p7)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7>(f, p1, p2, p3, p4, default(P5), default(P6), p7).Call5;
		}
		public void Call5(P5 p5, P6 p6, P7 p7)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7);
		}
		public static Method<P5, P6, P7> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7)).Call5;
		}
		public static Method<P5, P6, P7> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7)).Call5;
		}
		public void Call6(P6 p6)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, Parameter7);
		}
		public static Method<P6> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P7 p7)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7>(f, p1, p2, p3, p4, p5, default(P6), p7).Call6;
		}
		public void Call6(P6 p6, P7 p7)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7);
		}
		public static Method<P6, P7> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7>(f, p1, p2, p3, p4, p5, default(P6), default(P7)).Call6;
		}
		public static Method<P6, P7> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7>(f, p1, p2, p3, p4, p5, default(P6), default(P7)).Call6;
		}
		public void Call7(P7 p7)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7);
		}
		public static Method<P7> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7>(f, p1, p2, p3, p4, p5, p6, default(P7)).Call7;
		}
		public static Method<P7> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7>(f, p1, p2, p3, p4, p5, p6, default(P7)).Call7;
		}
	}
	public class AMethod<P1, P2, P3, P4, P5, P6, P7, P8>
	{
		public readonly Method<P1, P2, P3, P4, P5, P6, P7, P8> F;
		public P1 Parameter1;
		public P2 Parameter2;
		public P3 Parameter3;
		public P4 Parameter4;
		public P5 Parameter5;
		public P6 Parameter6;
		public P7 Parameter7;
		public P8 Parameter8;
		public AMethod(Delegate f)
		{
			F = (Method<P1, P2, P3, P4, P5, P6, P7, P8>)Delegate.CreateDelegate(typeof(Method<P1, P2, P3, P4, P5, P6, P7, P8>), f.Target, f.Method);
		}
		public AMethod(Delegate f, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			F = (Method<P1, P2, P3, P4, P5, P6, P7, P8>)Delegate.CreateDelegate(typeof(Method<P1, P2, P3, P4, P5, P6, P7, P8>), f.Target, f.Method);
			Parameter1 = p1;
			Parameter2 = p2;
			Parameter3 = p3;
			Parameter4 = p4;
			Parameter5 = p5;
			Parameter6 = p6;
			Parameter7 = p7;
			Parameter8 = p8;
		}
		public void Call()
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8);
		}
		public static Method From(Delegate f, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, p2, p3, p4, p5, p6, p7, p8).Call;
		}
		public void Call1(P1 p1)
		{
			F(p1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8);
		}
		public static Method<P1> At1(Delegate f, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8>(f, default(P1), p2, p3, p4, p5, p6, p7, p8).Call1;
		}
		public static Method<P1> AtBegin(Delegate f, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8>(f, default(P1), p2, p3, p4, p5, p6, p7, p8).Call1;
		}
		public void Call1(P1 p1, P2 p2)
		{
			F(p1, p2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8);
		}
		public static Method<P1, P2> At1(Delegate f, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8>(f, default(P1), default(P2), p3, p4, p5, p6, p7, p8).Call1;
		}
		public static Method<P1, P2> AtBegin(Delegate f, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8>(f, default(P1), default(P2), p3, p4, p5, p6, p7, p8).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3)
		{
			F(p1, p2, p3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8);
		}
		public static Method<P1, P2, P3> At1(Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8>(f, default(P1), default(P2), default(P3), p4, p5, p6, p7, p8).Call1;
		}
		public static Method<P1, P2, P3> AtBegin(Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8>(f, default(P1), default(P2), default(P3), p4, p5, p6, p7, p8).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4)
		{
			F(p1, p2, p3, p4, Parameter5, Parameter6, Parameter7, Parameter8);
		}
		public static Method<P1, P2, P3, P4> At1(Delegate f, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8>(f, default(P1), default(P2), default(P3), default(P4), p5, p6, p7, p8).Call1;
		}
		public static Method<P1, P2, P3, P4> AtBegin(Delegate f, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8>(f, default(P1), default(P2), default(P3), default(P4), p5, p6, p7, p8).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
		{
			F(p1, p2, p3, p4, p5, Parameter6, Parameter7, Parameter8);
		}
		public static Method<P1, P2, P3, P4, P5> At1(Delegate f, P6 p6, P7 p7, P8 p8)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8>(f, default(P1), default(P2), default(P3), default(P4), default(P5), p6, p7, p8).Call1;
		}
		public static Method<P1, P2, P3, P4, P5> AtBegin(Delegate f, P6 p6, P7 p7, P8 p8)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8>(f, default(P1), default(P2), default(P3), default(P4), default(P5), p6, p7, p8).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
		{
			F(p1, p2, p3, p4, p5, p6, Parameter7, Parameter8);
		}
		public static Method<P1, P2, P3, P4, P5, P6> At1(Delegate f, P7 p7, P8 p8)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), p7, p8).Call1;
		}
		public static Method<P1, P2, P3, P4, P5, P6> AtBegin(Delegate f, P7 p7, P8 p8)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), p7, p8).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			F(p1, p2, p3, p4, p5, p6, p7, Parameter8);
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7> At1(Delegate f, P8 p8)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), p8).Call1;
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7> AtBegin(Delegate f, P8 p8)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), p8).Call1;
		}
		public void Call2(P2 p2)
		{
			F(Parameter1, p2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8);
		}
		public static Method<P2> At2(P1 p1, Delegate f, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, default(P2), p3, p4, p5, p6, p7, p8).Call2;
		}
		public void Call2(P2 p2, P3 p3)
		{
			F(Parameter1, p2, p3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8);
		}
		public static Method<P2, P3> At2(P1 p1, Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, default(P2), default(P3), p4, p5, p6, p7, p8).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4)
		{
			F(Parameter1, p2, p3, p4, Parameter5, Parameter6, Parameter7, Parameter8);
		}
		public static Method<P2, P3, P4> At2(P1 p1, Delegate f, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, default(P2), default(P3), default(P4), p5, p6, p7, p8).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5)
		{
			F(Parameter1, p2, p3, p4, p5, Parameter6, Parameter7, Parameter8);
		}
		public static Method<P2, P3, P4, P5> At2(P1 p1, Delegate f, P6 p6, P7 p7, P8 p8)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, default(P2), default(P3), default(P4), default(P5), p6, p7, p8).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
		{
			F(Parameter1, p2, p3, p4, p5, p6, Parameter7, Parameter8);
		}
		public static Method<P2, P3, P4, P5, P6> At2(P1 p1, Delegate f, P7 p7, P8 p8)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), p7, p8).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			F(Parameter1, p2, p3, p4, p5, p6, p7, Parameter8);
		}
		public static Method<P2, P3, P4, P5, P6, P7> At2(P1 p1, Delegate f, P8 p8)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), p8).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			F(Parameter1, p2, p3, p4, p5, p6, p7, p8);
		}
		public static Method<P2, P3, P4, P5, P6, P7, P8> At2(P1 p1, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8)).Call2;
		}
		public static Method<P2, P3, P4, P5, P6, P7, P8> AtEnd(P1 p1, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8)).Call2;
		}
		public void Call3(P3 p3)
		{
			F(Parameter1, Parameter2, p3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8);
		}
		public static Method<P3> At3(P1 p1, P2 p2, Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, p2, default(P3), p4, p5, p6, p7, p8).Call3;
		}
		public void Call3(P3 p3, P4 p4)
		{
			F(Parameter1, Parameter2, p3, p4, Parameter5, Parameter6, Parameter7, Parameter8);
		}
		public static Method<P3, P4> At3(P1 p1, P2 p2, Delegate f, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, p2, default(P3), default(P4), p5, p6, p7, p8).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5)
		{
			F(Parameter1, Parameter2, p3, p4, p5, Parameter6, Parameter7, Parameter8);
		}
		public static Method<P3, P4, P5> At3(P1 p1, P2 p2, Delegate f, P6 p6, P7 p7, P8 p8)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, p2, default(P3), default(P4), default(P5), p6, p7, p8).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5, P6 p6)
		{
			F(Parameter1, Parameter2, p3, p4, p5, p6, Parameter7, Parameter8);
		}
		public static Method<P3, P4, P5, P6> At3(P1 p1, P2 p2, Delegate f, P7 p7, P8 p8)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), p7, p8).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			F(Parameter1, Parameter2, p3, p4, p5, p6, p7, Parameter8);
		}
		public static Method<P3, P4, P5, P6, P7> At3(P1 p1, P2 p2, Delegate f, P8 p8)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), p8).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8);
		}
		public static Method<P3, P4, P5, P6, P7, P8> At3(P1 p1, P2 p2, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8)).Call3;
		}
		public static Method<P3, P4, P5, P6, P7, P8> AtEnd(P1 p1, P2 p2, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8)).Call3;
		}
		public void Call4(P4 p4)
		{
			F(Parameter1, Parameter2, Parameter3, p4, Parameter5, Parameter6, Parameter7, Parameter8);
		}
		public static Method<P4> At4(P1 p1, P2 p2, P3 p3, Delegate f, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, p2, p3, default(P4), p5, p6, p7, p8).Call4;
		}
		public void Call4(P4 p4, P5 p5)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, Parameter6, Parameter7, Parameter8);
		}
		public static Method<P4, P5> At4(P1 p1, P2 p2, P3 p3, Delegate f, P6 p6, P7 p7, P8 p8)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, p2, p3, default(P4), default(P5), p6, p7, p8).Call4;
		}
		public void Call4(P4 p4, P5 p5, P6 p6)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, p6, Parameter7, Parameter8);
		}
		public static Method<P4, P5, P6> At4(P1 p1, P2 p2, P3 p3, Delegate f, P7 p7, P8 p8)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, p2, p3, default(P4), default(P5), default(P6), p7, p8).Call4;
		}
		public void Call4(P4 p4, P5 p5, P6 p6, P7 p7)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, Parameter8);
		}
		public static Method<P4, P5, P6, P7> At4(P1 p1, P2 p2, P3 p3, Delegate f, P8 p8)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), p8).Call4;
		}
		public void Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8);
		}
		public static Method<P4, P5, P6, P7, P8> At4(P1 p1, P2 p2, P3 p3, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8)).Call4;
		}
		public static Method<P4, P5, P6, P7, P8> AtEnd(P1 p1, P2 p2, P3 p3, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8)).Call4;
		}
		public void Call5(P5 p5)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, Parameter6, Parameter7, Parameter8);
		}
		public static Method<P5> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P6 p6, P7 p7, P8 p8)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, p2, p3, p4, default(P5), p6, p7, p8).Call5;
		}
		public void Call5(P5 p5, P6 p6)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, Parameter7, Parameter8);
		}
		public static Method<P5, P6> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P7 p7, P8 p8)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, p2, p3, p4, default(P5), default(P6), p7, p8).Call5;
		}
		public void Call5(P5 p5, P6 p6, P7 p7)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, Parameter8);
		}
		public static Method<P5, P6, P7> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P8 p8)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), p8).Call5;
		}
		public void Call5(P5 p5, P6 p6, P7 p7, P8 p8)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8);
		}
		public static Method<P5, P6, P7, P8> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8)).Call5;
		}
		public static Method<P5, P6, P7, P8> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8)).Call5;
		}
		public void Call6(P6 p6)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, Parameter7, Parameter8);
		}
		public static Method<P6> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P7 p7, P8 p8)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, p2, p3, p4, p5, default(P6), p7, p8).Call6;
		}
		public void Call6(P6 p6, P7 p7)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, Parameter8);
		}
		public static Method<P6, P7> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P8 p8)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, p2, p3, p4, p5, default(P6), default(P7), p8).Call6;
		}
		public void Call6(P6 p6, P7 p7, P8 p8)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8);
		}
		public static Method<P6, P7, P8> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8)).Call6;
		}
		public static Method<P6, P7, P8> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8)).Call6;
		}
		public void Call7(P7 p7)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, Parameter8);
		}
		public static Method<P7> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P8 p8)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, p2, p3, p4, p5, p6, default(P7), p8).Call7;
		}
		public void Call7(P7 p7, P8 p8)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8);
		}
		public static Method<P7, P8> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8)).Call7;
		}
		public static Method<P7, P8> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8)).Call7;
		}
		public void Call8(P8 p8)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8);
		}
		public static Method<P8> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, p2, p3, p4, p5, p6, p7, default(P8)).Call8;
		}
		public static Method<P8> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, p2, p3, p4, p5, p6, p7, default(P8)).Call8;
		}
	}
	public class AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9>
	{
		public readonly Method<P1, P2, P3, P4, P5, P6, P7, P8, P9> F;
		public P1 Parameter1;
		public P2 Parameter2;
		public P3 Parameter3;
		public P4 Parameter4;
		public P5 Parameter5;
		public P6 Parameter6;
		public P7 Parameter7;
		public P8 Parameter8;
		public P9 Parameter9;
		public AMethod(Delegate f)
		{
			F = (Method<P1, P2, P3, P4, P5, P6, P7, P8, P9>)Delegate.CreateDelegate(typeof(Method<P1, P2, P3, P4, P5, P6, P7, P8, P9>), f.Target, f.Method);
		}
		public AMethod(Delegate f, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			F = (Method<P1, P2, P3, P4, P5, P6, P7, P8, P9>)Delegate.CreateDelegate(typeof(Method<P1, P2, P3, P4, P5, P6, P7, P8, P9>), f.Target, f.Method);
			Parameter1 = p1;
			Parameter2 = p2;
			Parameter3 = p3;
			Parameter4 = p4;
			Parameter5 = p5;
			Parameter6 = p6;
			Parameter7 = p7;
			Parameter8 = p8;
			Parameter9 = p9;
		}
		public void Call()
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9);
		}
		public static Method From(Delegate f, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9).Call;
		}
		public void Call1(P1 p1)
		{
			F(p1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9);
		}
		public static Method<P1> At1(Delegate f, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, default(P1), p2, p3, p4, p5, p6, p7, p8, p9).Call1;
		}
		public static Method<P1> AtBegin(Delegate f, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, default(P1), p2, p3, p4, p5, p6, p7, p8, p9).Call1;
		}
		public void Call1(P1 p1, P2 p2)
		{
			F(p1, p2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9);
		}
		public static Method<P1, P2> At1(Delegate f, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, default(P1), default(P2), p3, p4, p5, p6, p7, p8, p9).Call1;
		}
		public static Method<P1, P2> AtBegin(Delegate f, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, default(P1), default(P2), p3, p4, p5, p6, p7, p8, p9).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3)
		{
			F(p1, p2, p3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9);
		}
		public static Method<P1, P2, P3> At1(Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, default(P1), default(P2), default(P3), p4, p5, p6, p7, p8, p9).Call1;
		}
		public static Method<P1, P2, P3> AtBegin(Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, default(P1), default(P2), default(P3), p4, p5, p6, p7, p8, p9).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4)
		{
			F(p1, p2, p3, p4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9);
		}
		public static Method<P1, P2, P3, P4> At1(Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, default(P1), default(P2), default(P3), default(P4), p5, p6, p7, p8, p9).Call1;
		}
		public static Method<P1, P2, P3, P4> AtBegin(Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, default(P1), default(P2), default(P3), default(P4), p5, p6, p7, p8, p9).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
		{
			F(p1, p2, p3, p4, p5, Parameter6, Parameter7, Parameter8, Parameter9);
		}
		public static Method<P1, P2, P3, P4, P5> At1(Delegate f, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, default(P1), default(P2), default(P3), default(P4), default(P5), p6, p7, p8, p9).Call1;
		}
		public static Method<P1, P2, P3, P4, P5> AtBegin(Delegate f, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, default(P1), default(P2), default(P3), default(P4), default(P5), p6, p7, p8, p9).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
		{
			F(p1, p2, p3, p4, p5, p6, Parameter7, Parameter8, Parameter9);
		}
		public static Method<P1, P2, P3, P4, P5, P6> At1(Delegate f, P7 p7, P8 p8, P9 p9)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), p7, p8, p9).Call1;
		}
		public static Method<P1, P2, P3, P4, P5, P6> AtBegin(Delegate f, P7 p7, P8 p8, P9 p9)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), p7, p8, p9).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			F(p1, p2, p3, p4, p5, p6, p7, Parameter8, Parameter9);
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7> At1(Delegate f, P8 p8, P9 p9)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), p8, p9).Call1;
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7> AtBegin(Delegate f, P8 p8, P9 p9)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), p8, p9).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			F(p1, p2, p3, p4, p5, p6, p7, p8, Parameter9);
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8> At1(Delegate f, P9 p9)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), p9).Call1;
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8> AtBegin(Delegate f, P9 p9)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), p9).Call1;
		}
		public void Call2(P2 p2)
		{
			F(Parameter1, p2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9);
		}
		public static Method<P2> At2(P1 p1, Delegate f, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, default(P2), p3, p4, p5, p6, p7, p8, p9).Call2;
		}
		public void Call2(P2 p2, P3 p3)
		{
			F(Parameter1, p2, p3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9);
		}
		public static Method<P2, P3> At2(P1 p1, Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, default(P2), default(P3), p4, p5, p6, p7, p8, p9).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4)
		{
			F(Parameter1, p2, p3, p4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9);
		}
		public static Method<P2, P3, P4> At2(P1 p1, Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, default(P2), default(P3), default(P4), p5, p6, p7, p8, p9).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5)
		{
			F(Parameter1, p2, p3, p4, p5, Parameter6, Parameter7, Parameter8, Parameter9);
		}
		public static Method<P2, P3, P4, P5> At2(P1 p1, Delegate f, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, default(P2), default(P3), default(P4), default(P5), p6, p7, p8, p9).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
		{
			F(Parameter1, p2, p3, p4, p5, p6, Parameter7, Parameter8, Parameter9);
		}
		public static Method<P2, P3, P4, P5, P6> At2(P1 p1, Delegate f, P7 p7, P8 p8, P9 p9)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), p7, p8, p9).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			F(Parameter1, p2, p3, p4, p5, p6, p7, Parameter8, Parameter9);
		}
		public static Method<P2, P3, P4, P5, P6, P7> At2(P1 p1, Delegate f, P8 p8, P9 p9)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), p8, p9).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			F(Parameter1, p2, p3, p4, p5, p6, p7, p8, Parameter9);
		}
		public static Method<P2, P3, P4, P5, P6, P7, P8> At2(P1 p1, Delegate f, P9 p9)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), p9).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9);
		}
		public static Method<P2, P3, P4, P5, P6, P7, P8, P9> At2(P1 p1, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9)).Call2;
		}
		public static Method<P2, P3, P4, P5, P6, P7, P8, P9> AtEnd(P1 p1, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9)).Call2;
		}
		public void Call3(P3 p3)
		{
			F(Parameter1, Parameter2, p3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9);
		}
		public static Method<P3> At3(P1 p1, P2 p2, Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, default(P3), p4, p5, p6, p7, p8, p9).Call3;
		}
		public void Call3(P3 p3, P4 p4)
		{
			F(Parameter1, Parameter2, p3, p4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9);
		}
		public static Method<P3, P4> At3(P1 p1, P2 p2, Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, default(P3), default(P4), p5, p6, p7, p8, p9).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5)
		{
			F(Parameter1, Parameter2, p3, p4, p5, Parameter6, Parameter7, Parameter8, Parameter9);
		}
		public static Method<P3, P4, P5> At3(P1 p1, P2 p2, Delegate f, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, default(P3), default(P4), default(P5), p6, p7, p8, p9).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5, P6 p6)
		{
			F(Parameter1, Parameter2, p3, p4, p5, p6, Parameter7, Parameter8, Parameter9);
		}
		public static Method<P3, P4, P5, P6> At3(P1 p1, P2 p2, Delegate f, P7 p7, P8 p8, P9 p9)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), p7, p8, p9).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			F(Parameter1, Parameter2, p3, p4, p5, p6, p7, Parameter8, Parameter9);
		}
		public static Method<P3, P4, P5, P6, P7> At3(P1 p1, P2 p2, Delegate f, P8 p8, P9 p9)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), p8, p9).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, Parameter9);
		}
		public static Method<P3, P4, P5, P6, P7, P8> At3(P1 p1, P2 p2, Delegate f, P9 p9)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), p9).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9);
		}
		public static Method<P3, P4, P5, P6, P7, P8, P9> At3(P1 p1, P2 p2, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9)).Call3;
		}
		public static Method<P3, P4, P5, P6, P7, P8, P9> AtEnd(P1 p1, P2 p2, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9)).Call3;
		}
		public void Call4(P4 p4)
		{
			F(Parameter1, Parameter2, Parameter3, p4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9);
		}
		public static Method<P4> At4(P1 p1, P2 p2, P3 p3, Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, p3, default(P4), p5, p6, p7, p8, p9).Call4;
		}
		public void Call4(P4 p4, P5 p5)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, Parameter6, Parameter7, Parameter8, Parameter9);
		}
		public static Method<P4, P5> At4(P1 p1, P2 p2, P3 p3, Delegate f, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, p3, default(P4), default(P5), p6, p7, p8, p9).Call4;
		}
		public void Call4(P4 p4, P5 p5, P6 p6)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, p6, Parameter7, Parameter8, Parameter9);
		}
		public static Method<P4, P5, P6> At4(P1 p1, P2 p2, P3 p3, Delegate f, P7 p7, P8 p8, P9 p9)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, p3, default(P4), default(P5), default(P6), p7, p8, p9).Call4;
		}
		public void Call4(P4 p4, P5 p5, P6 p6, P7 p7)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, Parameter8, Parameter9);
		}
		public static Method<P4, P5, P6, P7> At4(P1 p1, P2 p2, P3 p3, Delegate f, P8 p8, P9 p9)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), p8, p9).Call4;
		}
		public void Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, Parameter9);
		}
		public static Method<P4, P5, P6, P7, P8> At4(P1 p1, P2 p2, P3 p3, Delegate f, P9 p9)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), p9).Call4;
		}
		public void Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9);
		}
		public static Method<P4, P5, P6, P7, P8, P9> At4(P1 p1, P2 p2, P3 p3, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9)).Call4;
		}
		public static Method<P4, P5, P6, P7, P8, P9> AtEnd(P1 p1, P2 p2, P3 p3, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9)).Call4;
		}
		public void Call5(P5 p5)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, Parameter6, Parameter7, Parameter8, Parameter9);
		}
		public static Method<P5> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, p3, p4, default(P5), p6, p7, p8, p9).Call5;
		}
		public void Call5(P5 p5, P6 p6)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, Parameter7, Parameter8, Parameter9);
		}
		public static Method<P5, P6> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P7 p7, P8 p8, P9 p9)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, p3, p4, default(P5), default(P6), p7, p8, p9).Call5;
		}
		public void Call5(P5 p5, P6 p6, P7 p7)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, Parameter8, Parameter9);
		}
		public static Method<P5, P6, P7> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P8 p8, P9 p9)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), p8, p9).Call5;
		}
		public void Call5(P5 p5, P6 p6, P7 p7, P8 p8)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, Parameter9);
		}
		public static Method<P5, P6, P7, P8> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P9 p9)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), p9).Call5;
		}
		public void Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9);
		}
		public static Method<P5, P6, P7, P8, P9> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9)).Call5;
		}
		public static Method<P5, P6, P7, P8, P9> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9)).Call5;
		}
		public void Call6(P6 p6)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, Parameter7, Parameter8, Parameter9);
		}
		public static Method<P6> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P7 p7, P8 p8, P9 p9)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, p3, p4, p5, default(P6), p7, p8, p9).Call6;
		}
		public void Call6(P6 p6, P7 p7)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, Parameter8, Parameter9);
		}
		public static Method<P6, P7> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P8 p8, P9 p9)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, p3, p4, p5, default(P6), default(P7), p8, p9).Call6;
		}
		public void Call6(P6 p6, P7 p7, P8 p8)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, Parameter9);
		}
		public static Method<P6, P7, P8> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P9 p9)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), p9).Call6;
		}
		public void Call6(P6 p6, P7 p7, P8 p8, P9 p9)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9);
		}
		public static Method<P6, P7, P8, P9> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9)).Call6;
		}
		public static Method<P6, P7, P8, P9> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9)).Call6;
		}
		public void Call7(P7 p7)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, Parameter8, Parameter9);
		}
		public static Method<P7> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P8 p8, P9 p9)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, p3, p4, p5, p6, default(P7), p8, p9).Call7;
		}
		public void Call7(P7 p7, P8 p8)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, Parameter9);
		}
		public static Method<P7, P8> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P9 p9)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), p9).Call7;
		}
		public void Call7(P7 p7, P8 p8, P9 p9)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9);
		}
		public static Method<P7, P8, P9> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9)).Call7;
		}
		public static Method<P7, P8, P9> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9)).Call7;
		}
		public void Call8(P8 p8)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, Parameter9);
		}
		public static Method<P8> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P9 p9)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), p9).Call8;
		}
		public void Call8(P8 p8, P9 p9)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9);
		}
		public static Method<P8, P9> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9)).Call8;
		}
		public static Method<P8, P9> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9)).Call8;
		}
		public void Call9(P9 p9)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9);
		}
		public static Method<P9> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9)).Call9;
		}
		public static Method<P9> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9)).Call9;
		}
	}
	public class AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>
	{
		public readonly Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10> F;
		public P1 Parameter1;
		public P2 Parameter2;
		public P3 Parameter3;
		public P4 Parameter4;
		public P5 Parameter5;
		public P6 Parameter6;
		public P7 Parameter7;
		public P8 Parameter8;
		public P9 Parameter9;
		public P10 Parameter10;
		public AMethod(Delegate f)
		{
			F = (Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>)Delegate.CreateDelegate(typeof(Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>), f.Target, f.Method);
		}
		public AMethod(Delegate f, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			F = (Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>)Delegate.CreateDelegate(typeof(Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>), f.Target, f.Method);
			Parameter1 = p1;
			Parameter2 = p2;
			Parameter3 = p3;
			Parameter4 = p4;
			Parameter5 = p5;
			Parameter6 = p6;
			Parameter7 = p7;
			Parameter8 = p8;
			Parameter9 = p9;
			Parameter10 = p10;
		}
		public void Call()
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10);
		}
		public static Method From(Delegate f, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10).Call;
		}
		public void Call1(P1 p1)
		{
			F(p1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10);
		}
		public static Method<P1> At1(Delegate f, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, default(P1), p2, p3, p4, p5, p6, p7, p8, p9, p10).Call1;
		}
		public static Method<P1> AtBegin(Delegate f, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, default(P1), p2, p3, p4, p5, p6, p7, p8, p9, p10).Call1;
		}
		public void Call1(P1 p1, P2 p2)
		{
			F(p1, p2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10);
		}
		public static Method<P1, P2> At1(Delegate f, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, default(P1), default(P2), p3, p4, p5, p6, p7, p8, p9, p10).Call1;
		}
		public static Method<P1, P2> AtBegin(Delegate f, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, default(P1), default(P2), p3, p4, p5, p6, p7, p8, p9, p10).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3)
		{
			F(p1, p2, p3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10);
		}
		public static Method<P1, P2, P3> At1(Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, default(P1), default(P2), default(P3), p4, p5, p6, p7, p8, p9, p10).Call1;
		}
		public static Method<P1, P2, P3> AtBegin(Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, default(P1), default(P2), default(P3), p4, p5, p6, p7, p8, p9, p10).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4)
		{
			F(p1, p2, p3, p4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10);
		}
		public static Method<P1, P2, P3, P4> At1(Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, default(P1), default(P2), default(P3), default(P4), p5, p6, p7, p8, p9, p10).Call1;
		}
		public static Method<P1, P2, P3, P4> AtBegin(Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, default(P1), default(P2), default(P3), default(P4), p5, p6, p7, p8, p9, p10).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
		{
			F(p1, p2, p3, p4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10);
		}
		public static Method<P1, P2, P3, P4, P5> At1(Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, default(P1), default(P2), default(P3), default(P4), default(P5), p6, p7, p8, p9, p10).Call1;
		}
		public static Method<P1, P2, P3, P4, P5> AtBegin(Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, default(P1), default(P2), default(P3), default(P4), default(P5), p6, p7, p8, p9, p10).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
		{
			F(p1, p2, p3, p4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10);
		}
		public static Method<P1, P2, P3, P4, P5, P6> At1(Delegate f, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), p7, p8, p9, p10).Call1;
		}
		public static Method<P1, P2, P3, P4, P5, P6> AtBegin(Delegate f, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), p7, p8, p9, p10).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			F(p1, p2, p3, p4, p5, p6, p7, Parameter8, Parameter9, Parameter10);
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7> At1(Delegate f, P8 p8, P9 p9, P10 p10)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), p8, p9, p10).Call1;
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7> AtBegin(Delegate f, P8 p8, P9 p9, P10 p10)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), p8, p9, p10).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			F(p1, p2, p3, p4, p5, p6, p7, p8, Parameter9, Parameter10);
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8> At1(Delegate f, P9 p9, P10 p10)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10).Call1;
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8> AtBegin(Delegate f, P9 p9, P10 p10)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			F(p1, p2, p3, p4, p5, p6, p7, p8, p9, Parameter10);
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8, P9> At1(Delegate f, P10 p10)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10).Call1;
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8, P9> AtBegin(Delegate f, P10 p10)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10).Call1;
		}
		public void Call2(P2 p2)
		{
			F(Parameter1, p2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10);
		}
		public static Method<P2> At2(P1 p1, Delegate f, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, default(P2), p3, p4, p5, p6, p7, p8, p9, p10).Call2;
		}
		public void Call2(P2 p2, P3 p3)
		{
			F(Parameter1, p2, p3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10);
		}
		public static Method<P2, P3> At2(P1 p1, Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, default(P2), default(P3), p4, p5, p6, p7, p8, p9, p10).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4)
		{
			F(Parameter1, p2, p3, p4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10);
		}
		public static Method<P2, P3, P4> At2(P1 p1, Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, default(P2), default(P3), default(P4), p5, p6, p7, p8, p9, p10).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5)
		{
			F(Parameter1, p2, p3, p4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10);
		}
		public static Method<P2, P3, P4, P5> At2(P1 p1, Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, default(P2), default(P3), default(P4), default(P5), p6, p7, p8, p9, p10).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
		{
			F(Parameter1, p2, p3, p4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10);
		}
		public static Method<P2, P3, P4, P5, P6> At2(P1 p1, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), p7, p8, p9, p10).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			F(Parameter1, p2, p3, p4, p5, p6, p7, Parameter8, Parameter9, Parameter10);
		}
		public static Method<P2, P3, P4, P5, P6, P7> At2(P1 p1, Delegate f, P8 p8, P9 p9, P10 p10)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), p8, p9, p10).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			F(Parameter1, p2, p3, p4, p5, p6, p7, p8, Parameter9, Parameter10);
		}
		public static Method<P2, P3, P4, P5, P6, P7, P8> At2(P1 p1, Delegate f, P9 p9, P10 p10)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, Parameter10);
		}
		public static Method<P2, P3, P4, P5, P6, P7, P8, P9> At2(P1 p1, Delegate f, P10 p10)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, p10);
		}
		public static Method<P2, P3, P4, P5, P6, P7, P8, P9, P10> At2(P1 p1, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10)).Call2;
		}
		public static Method<P2, P3, P4, P5, P6, P7, P8, P9, P10> AtEnd(P1 p1, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10)).Call2;
		}
		public void Call3(P3 p3)
		{
			F(Parameter1, Parameter2, p3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10);
		}
		public static Method<P3> At3(P1 p1, P2 p2, Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, default(P3), p4, p5, p6, p7, p8, p9, p10).Call3;
		}
		public void Call3(P3 p3, P4 p4)
		{
			F(Parameter1, Parameter2, p3, p4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10);
		}
		public static Method<P3, P4> At3(P1 p1, P2 p2, Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, default(P3), default(P4), p5, p6, p7, p8, p9, p10).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5)
		{
			F(Parameter1, Parameter2, p3, p4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10);
		}
		public static Method<P3, P4, P5> At3(P1 p1, P2 p2, Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, default(P3), default(P4), default(P5), p6, p7, p8, p9, p10).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5, P6 p6)
		{
			F(Parameter1, Parameter2, p3, p4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10);
		}
		public static Method<P3, P4, P5, P6> At3(P1 p1, P2 p2, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), p7, p8, p9, p10).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			F(Parameter1, Parameter2, p3, p4, p5, p6, p7, Parameter8, Parameter9, Parameter10);
		}
		public static Method<P3, P4, P5, P6, P7> At3(P1 p1, P2 p2, Delegate f, P8 p8, P9 p9, P10 p10)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), p8, p9, p10).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, Parameter9, Parameter10);
		}
		public static Method<P3, P4, P5, P6, P7, P8> At3(P1 p1, P2 p2, Delegate f, P9 p9, P10 p10)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, Parameter10);
		}
		public static Method<P3, P4, P5, P6, P7, P8, P9> At3(P1 p1, P2 p2, Delegate f, P10 p10)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, p10);
		}
		public static Method<P3, P4, P5, P6, P7, P8, P9, P10> At3(P1 p1, P2 p2, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10)).Call3;
		}
		public static Method<P3, P4, P5, P6, P7, P8, P9, P10> AtEnd(P1 p1, P2 p2, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10)).Call3;
		}
		public void Call4(P4 p4)
		{
			F(Parameter1, Parameter2, Parameter3, p4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10);
		}
		public static Method<P4> At4(P1 p1, P2 p2, P3 p3, Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, default(P4), p5, p6, p7, p8, p9, p10).Call4;
		}
		public void Call4(P4 p4, P5 p5)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10);
		}
		public static Method<P4, P5> At4(P1 p1, P2 p2, P3 p3, Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, default(P4), default(P5), p6, p7, p8, p9, p10).Call4;
		}
		public void Call4(P4 p4, P5 p5, P6 p6)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10);
		}
		public static Method<P4, P5, P6> At4(P1 p1, P2 p2, P3 p3, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, default(P4), default(P5), default(P6), p7, p8, p9, p10).Call4;
		}
		public void Call4(P4 p4, P5 p5, P6 p6, P7 p7)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, Parameter8, Parameter9, Parameter10);
		}
		public static Method<P4, P5, P6, P7> At4(P1 p1, P2 p2, P3 p3, Delegate f, P8 p8, P9 p9, P10 p10)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), p8, p9, p10).Call4;
		}
		public void Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, Parameter9, Parameter10);
		}
		public static Method<P4, P5, P6, P7, P8> At4(P1 p1, P2 p2, P3 p3, Delegate f, P9 p9, P10 p10)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10).Call4;
		}
		public void Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, Parameter10);
		}
		public static Method<P4, P5, P6, P7, P8, P9> At4(P1 p1, P2 p2, P3 p3, Delegate f, P10 p10)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10).Call4;
		}
		public void Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, p10);
		}
		public static Method<P4, P5, P6, P7, P8, P9, P10> At4(P1 p1, P2 p2, P3 p3, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10)).Call4;
		}
		public static Method<P4, P5, P6, P7, P8, P9, P10> AtEnd(P1 p1, P2 p2, P3 p3, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10)).Call4;
		}
		public void Call5(P5 p5)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10);
		}
		public static Method<P5> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, p4, default(P5), p6, p7, p8, p9, p10).Call5;
		}
		public void Call5(P5 p5, P6 p6)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10);
		}
		public static Method<P5, P6> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, p4, default(P5), default(P6), p7, p8, p9, p10).Call5;
		}
		public void Call5(P5 p5, P6 p6, P7 p7)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, Parameter8, Parameter9, Parameter10);
		}
		public static Method<P5, P6, P7> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P8 p8, P9 p9, P10 p10)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), p8, p9, p10).Call5;
		}
		public void Call5(P5 p5, P6 p6, P7 p7, P8 p8)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, Parameter9, Parameter10);
		}
		public static Method<P5, P6, P7, P8> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P9 p9, P10 p10)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), p9, p10).Call5;
		}
		public void Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, Parameter10);
		}
		public static Method<P5, P6, P7, P8, P9> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P10 p10)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), p10).Call5;
		}
		public void Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, p10);
		}
		public static Method<P5, P6, P7, P8, P9, P10> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10)).Call5;
		}
		public static Method<P5, P6, P7, P8, P9, P10> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10)).Call5;
		}
		public void Call6(P6 p6)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, Parameter7, Parameter8, Parameter9, Parameter10);
		}
		public static Method<P6> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, p4, p5, default(P6), p7, p8, p9, p10).Call6;
		}
		public void Call6(P6 p6, P7 p7)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, Parameter8, Parameter9, Parameter10);
		}
		public static Method<P6, P7> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P8 p8, P9 p9, P10 p10)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, p4, p5, default(P6), default(P7), p8, p9, p10).Call6;
		}
		public void Call6(P6 p6, P7 p7, P8 p8)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, Parameter9, Parameter10);
		}
		public static Method<P6, P7, P8> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P9 p9, P10 p10)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), p9, p10).Call6;
		}
		public void Call6(P6 p6, P7 p7, P8 p8, P9 p9)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, Parameter10);
		}
		public static Method<P6, P7, P8, P9> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P10 p10)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), p10).Call6;
		}
		public void Call6(P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, p10);
		}
		public static Method<P6, P7, P8, P9, P10> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10)).Call6;
		}
		public static Method<P6, P7, P8, P9, P10> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10)).Call6;
		}
		public void Call7(P7 p7)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, Parameter8, Parameter9, Parameter10);
		}
		public static Method<P7> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P8 p8, P9 p9, P10 p10)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, p4, p5, p6, default(P7), p8, p9, p10).Call7;
		}
		public void Call7(P7 p7, P8 p8)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, Parameter9, Parameter10);
		}
		public static Method<P7, P8> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P9 p9, P10 p10)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), p9, p10).Call7;
		}
		public void Call7(P7 p7, P8 p8, P9 p9)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, Parameter10);
		}
		public static Method<P7, P8, P9> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P10 p10)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), p10).Call7;
		}
		public void Call7(P7 p7, P8 p8, P9 p9, P10 p10)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, p10);
		}
		public static Method<P7, P8, P9, P10> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10)).Call7;
		}
		public static Method<P7, P8, P9, P10> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10)).Call7;
		}
		public void Call8(P8 p8)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, Parameter9, Parameter10);
		}
		public static Method<P8> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P9 p9, P10 p10)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), p9, p10).Call8;
		}
		public void Call8(P8 p8, P9 p9)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, Parameter10);
		}
		public static Method<P8, P9> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P10 p10)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), p10).Call8;
		}
		public void Call8(P8 p8, P9 p9, P10 p10)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, p10);
		}
		public static Method<P8, P9, P10> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10)).Call8;
		}
		public static Method<P8, P9, P10> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10)).Call8;
		}
		public void Call9(P9 p9)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, Parameter10);
		}
		public static Method<P9> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f, P10 p10)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), p10).Call9;
		}
		public void Call9(P9 p9, P10 p10)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, p10);
		}
		public static Method<P9, P10> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10)).Call9;
		}
		public static Method<P9, P10> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10)).Call9;
		}
		public void Call10(P10 p10)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, p10);
		}
		public static Method<P10> At10(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10)).Call10;
		}
		public static Method<P10> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10)).Call10;
		}
	}
	public class AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>
	{
		public readonly Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11> F;
		public P1 Parameter1;
		public P2 Parameter2;
		public P3 Parameter3;
		public P4 Parameter4;
		public P5 Parameter5;
		public P6 Parameter6;
		public P7 Parameter7;
		public P8 Parameter8;
		public P9 Parameter9;
		public P10 Parameter10;
		public P11 Parameter11;
		public AMethod(Delegate f)
		{
			F = (Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>)Delegate.CreateDelegate(typeof(Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>), f.Target, f.Method);
		}
		public AMethod(Delegate f, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			F = (Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>)Delegate.CreateDelegate(typeof(Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>), f.Target, f.Method);
			Parameter1 = p1;
			Parameter2 = p2;
			Parameter3 = p3;
			Parameter4 = p4;
			Parameter5 = p5;
			Parameter6 = p6;
			Parameter7 = p7;
			Parameter8 = p8;
			Parameter9 = p9;
			Parameter10 = p10;
			Parameter11 = p11;
		}
		public void Call()
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11);
		}
		public static Method From(Delegate f, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11).Call;
		}
		public void Call1(P1 p1)
		{
			F(p1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11);
		}
		public static Method<P1> At1(Delegate f, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, default(P1), p2, p3, p4, p5, p6, p7, p8, p9, p10, p11).Call1;
		}
		public static Method<P1> AtBegin(Delegate f, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, default(P1), p2, p3, p4, p5, p6, p7, p8, p9, p10, p11).Call1;
		}
		public void Call1(P1 p1, P2 p2)
		{
			F(p1, p2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11);
		}
		public static Method<P1, P2> At1(Delegate f, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, default(P1), default(P2), p3, p4, p5, p6, p7, p8, p9, p10, p11).Call1;
		}
		public static Method<P1, P2> AtBegin(Delegate f, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, default(P1), default(P2), p3, p4, p5, p6, p7, p8, p9, p10, p11).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3)
		{
			F(p1, p2, p3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11);
		}
		public static Method<P1, P2, P3> At1(Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, default(P1), default(P2), default(P3), p4, p5, p6, p7, p8, p9, p10, p11).Call1;
		}
		public static Method<P1, P2, P3> AtBegin(Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, default(P1), default(P2), default(P3), p4, p5, p6, p7, p8, p9, p10, p11).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4)
		{
			F(p1, p2, p3, p4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11);
		}
		public static Method<P1, P2, P3, P4> At1(Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, default(P1), default(P2), default(P3), default(P4), p5, p6, p7, p8, p9, p10, p11).Call1;
		}
		public static Method<P1, P2, P3, P4> AtBegin(Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, default(P1), default(P2), default(P3), default(P4), p5, p6, p7, p8, p9, p10, p11).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
		{
			F(p1, p2, p3, p4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11);
		}
		public static Method<P1, P2, P3, P4, P5> At1(Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, default(P1), default(P2), default(P3), default(P4), default(P5), p6, p7, p8, p9, p10, p11).Call1;
		}
		public static Method<P1, P2, P3, P4, P5> AtBegin(Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, default(P1), default(P2), default(P3), default(P4), default(P5), p6, p7, p8, p9, p10, p11).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
		{
			F(p1, p2, p3, p4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11);
		}
		public static Method<P1, P2, P3, P4, P5, P6> At1(Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), p7, p8, p9, p10, p11).Call1;
		}
		public static Method<P1, P2, P3, P4, P5, P6> AtBegin(Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), p7, p8, p9, p10, p11).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			F(p1, p2, p3, p4, p5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11);
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7> At1(Delegate f, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), p8, p9, p10, p11).Call1;
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7> AtBegin(Delegate f, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), p8, p9, p10, p11).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			F(p1, p2, p3, p4, p5, p6, p7, p8, Parameter9, Parameter10, Parameter11);
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8> At1(Delegate f, P9 p9, P10 p10, P11 p11)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10, p11).Call1;
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8> AtBegin(Delegate f, P9 p9, P10 p10, P11 p11)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10, p11).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			F(p1, p2, p3, p4, p5, p6, p7, p8, p9, Parameter10, Parameter11);
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8, P9> At1(Delegate f, P10 p10, P11 p11)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11).Call1;
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8, P9> AtBegin(Delegate f, P10 p10, P11 p11)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			F(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, Parameter11);
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10> At1(Delegate f, P11 p11)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11).Call1;
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10> AtBegin(Delegate f, P11 p11)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11).Call1;
		}
		public void Call2(P2 p2)
		{
			F(Parameter1, p2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11);
		}
		public static Method<P2> At2(P1 p1, Delegate f, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, default(P2), p3, p4, p5, p6, p7, p8, p9, p10, p11).Call2;
		}
		public void Call2(P2 p2, P3 p3)
		{
			F(Parameter1, p2, p3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11);
		}
		public static Method<P2, P3> At2(P1 p1, Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, default(P2), default(P3), p4, p5, p6, p7, p8, p9, p10, p11).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4)
		{
			F(Parameter1, p2, p3, p4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11);
		}
		public static Method<P2, P3, P4> At2(P1 p1, Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, default(P2), default(P3), default(P4), p5, p6, p7, p8, p9, p10, p11).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5)
		{
			F(Parameter1, p2, p3, p4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11);
		}
		public static Method<P2, P3, P4, P5> At2(P1 p1, Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, default(P2), default(P3), default(P4), default(P5), p6, p7, p8, p9, p10, p11).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
		{
			F(Parameter1, p2, p3, p4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11);
		}
		public static Method<P2, P3, P4, P5, P6> At2(P1 p1, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), p7, p8, p9, p10, p11).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			F(Parameter1, p2, p3, p4, p5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11);
		}
		public static Method<P2, P3, P4, P5, P6, P7> At2(P1 p1, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), p8, p9, p10, p11).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			F(Parameter1, p2, p3, p4, p5, p6, p7, p8, Parameter9, Parameter10, Parameter11);
		}
		public static Method<P2, P3, P4, P5, P6, P7, P8> At2(P1 p1, Delegate f, P9 p9, P10 p10, P11 p11)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10, p11).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, Parameter10, Parameter11);
		}
		public static Method<P2, P3, P4, P5, P6, P7, P8, P9> At2(P1 p1, Delegate f, P10 p10, P11 p11)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, p10, Parameter11);
		}
		public static Method<P2, P3, P4, P5, P6, P7, P8, P9, P10> At2(P1 p1, Delegate f, P11 p11)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11);
		}
		public static Method<P2, P3, P4, P5, P6, P7, P8, P9, P10, P11> At2(P1 p1, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11)).Call2;
		}
		public static Method<P2, P3, P4, P5, P6, P7, P8, P9, P10, P11> AtEnd(P1 p1, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11)).Call2;
		}
		public void Call3(P3 p3)
		{
			F(Parameter1, Parameter2, p3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11);
		}
		public static Method<P3> At3(P1 p1, P2 p2, Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, default(P3), p4, p5, p6, p7, p8, p9, p10, p11).Call3;
		}
		public void Call3(P3 p3, P4 p4)
		{
			F(Parameter1, Parameter2, p3, p4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11);
		}
		public static Method<P3, P4> At3(P1 p1, P2 p2, Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, default(P3), default(P4), p5, p6, p7, p8, p9, p10, p11).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5)
		{
			F(Parameter1, Parameter2, p3, p4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11);
		}
		public static Method<P3, P4, P5> At3(P1 p1, P2 p2, Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, default(P3), default(P4), default(P5), p6, p7, p8, p9, p10, p11).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5, P6 p6)
		{
			F(Parameter1, Parameter2, p3, p4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11);
		}
		public static Method<P3, P4, P5, P6> At3(P1 p1, P2 p2, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), p7, p8, p9, p10, p11).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			F(Parameter1, Parameter2, p3, p4, p5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11);
		}
		public static Method<P3, P4, P5, P6, P7> At3(P1 p1, P2 p2, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), p8, p9, p10, p11).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, Parameter9, Parameter10, Parameter11);
		}
		public static Method<P3, P4, P5, P6, P7, P8> At3(P1 p1, P2 p2, Delegate f, P9 p9, P10 p10, P11 p11)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10, p11).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, Parameter10, Parameter11);
		}
		public static Method<P3, P4, P5, P6, P7, P8, P9> At3(P1 p1, P2 p2, Delegate f, P10 p10, P11 p11)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, p10, Parameter11);
		}
		public static Method<P3, P4, P5, P6, P7, P8, P9, P10> At3(P1 p1, P2 p2, Delegate f, P11 p11)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, p10, p11);
		}
		public static Method<P3, P4, P5, P6, P7, P8, P9, P10, P11> At3(P1 p1, P2 p2, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11)).Call3;
		}
		public static Method<P3, P4, P5, P6, P7, P8, P9, P10, P11> AtEnd(P1 p1, P2 p2, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11)).Call3;
		}
		public void Call4(P4 p4)
		{
			F(Parameter1, Parameter2, Parameter3, p4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11);
		}
		public static Method<P4> At4(P1 p1, P2 p2, P3 p3, Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, default(P4), p5, p6, p7, p8, p9, p10, p11).Call4;
		}
		public void Call4(P4 p4, P5 p5)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11);
		}
		public static Method<P4, P5> At4(P1 p1, P2 p2, P3 p3, Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, default(P4), default(P5), p6, p7, p8, p9, p10, p11).Call4;
		}
		public void Call4(P4 p4, P5 p5, P6 p6)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11);
		}
		public static Method<P4, P5, P6> At4(P1 p1, P2 p2, P3 p3, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, default(P4), default(P5), default(P6), p7, p8, p9, p10, p11).Call4;
		}
		public void Call4(P4 p4, P5 p5, P6 p6, P7 p7)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11);
		}
		public static Method<P4, P5, P6, P7> At4(P1 p1, P2 p2, P3 p3, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), p8, p9, p10, p11).Call4;
		}
		public void Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, Parameter9, Parameter10, Parameter11);
		}
		public static Method<P4, P5, P6, P7, P8> At4(P1 p1, P2 p2, P3 p3, Delegate f, P9 p9, P10 p10, P11 p11)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10, p11).Call4;
		}
		public void Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, Parameter10, Parameter11);
		}
		public static Method<P4, P5, P6, P7, P8, P9> At4(P1 p1, P2 p2, P3 p3, Delegate f, P10 p10, P11 p11)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11).Call4;
		}
		public void Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, p10, Parameter11);
		}
		public static Method<P4, P5, P6, P7, P8, P9, P10> At4(P1 p1, P2 p2, P3 p3, Delegate f, P11 p11)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11).Call4;
		}
		public void Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, p10, p11);
		}
		public static Method<P4, P5, P6, P7, P8, P9, P10, P11> At4(P1 p1, P2 p2, P3 p3, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11)).Call4;
		}
		public static Method<P4, P5, P6, P7, P8, P9, P10, P11> AtEnd(P1 p1, P2 p2, P3 p3, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11)).Call4;
		}
		public void Call5(P5 p5)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11);
		}
		public static Method<P5> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, default(P5), p6, p7, p8, p9, p10, p11).Call5;
		}
		public void Call5(P5 p5, P6 p6)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11);
		}
		public static Method<P5, P6> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, default(P5), default(P6), p7, p8, p9, p10, p11).Call5;
		}
		public void Call5(P5 p5, P6 p6, P7 p7)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11);
		}
		public static Method<P5, P6, P7> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), p8, p9, p10, p11).Call5;
		}
		public void Call5(P5 p5, P6 p6, P7 p7, P8 p8)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, Parameter9, Parameter10, Parameter11);
		}
		public static Method<P5, P6, P7, P8> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P9 p9, P10 p10, P11 p11)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), p9, p10, p11).Call5;
		}
		public void Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, Parameter10, Parameter11);
		}
		public static Method<P5, P6, P7, P8, P9> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P10 p10, P11 p11)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11).Call5;
		}
		public void Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, p10, Parameter11);
		}
		public static Method<P5, P6, P7, P8, P9, P10> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P11 p11)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11).Call5;
		}
		public void Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, p10, p11);
		}
		public static Method<P5, P6, P7, P8, P9, P10, P11> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11)).Call5;
		}
		public static Method<P5, P6, P7, P8, P9, P10, P11> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11)).Call5;
		}
		public void Call6(P6 p6)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11);
		}
		public static Method<P6> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, p5, default(P6), p7, p8, p9, p10, p11).Call6;
		}
		public void Call6(P6 p6, P7 p7)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11);
		}
		public static Method<P6, P7> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, p5, default(P6), default(P7), p8, p9, p10, p11).Call6;
		}
		public void Call6(P6 p6, P7 p7, P8 p8)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, Parameter9, Parameter10, Parameter11);
		}
		public static Method<P6, P7, P8> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P9 p9, P10 p10, P11 p11)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), p9, p10, p11).Call6;
		}
		public void Call6(P6 p6, P7 p7, P8 p8, P9 p9)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, Parameter10, Parameter11);
		}
		public static Method<P6, P7, P8, P9> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P10 p10, P11 p11)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), p10, p11).Call6;
		}
		public void Call6(P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, p10, Parameter11);
		}
		public static Method<P6, P7, P8, P9, P10> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P11 p11)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10), p11).Call6;
		}
		public void Call6(P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, p10, p11);
		}
		public static Method<P6, P7, P8, P9, P10, P11> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10), default(P11)).Call6;
		}
		public static Method<P6, P7, P8, P9, P10, P11> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10), default(P11)).Call6;
		}
		public void Call7(P7 p7)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, Parameter8, Parameter9, Parameter10, Parameter11);
		}
		public static Method<P7> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, p5, p6, default(P7), p8, p9, p10, p11).Call7;
		}
		public void Call7(P7 p7, P8 p8)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, Parameter9, Parameter10, Parameter11);
		}
		public static Method<P7, P8> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P9 p9, P10 p10, P11 p11)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), p9, p10, p11).Call7;
		}
		public void Call7(P7 p7, P8 p8, P9 p9)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, Parameter10, Parameter11);
		}
		public static Method<P7, P8, P9> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P10 p10, P11 p11)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), p10, p11).Call7;
		}
		public void Call7(P7 p7, P8 p8, P9 p9, P10 p10)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, p10, Parameter11);
		}
		public static Method<P7, P8, P9, P10> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P11 p11)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10), p11).Call7;
		}
		public void Call7(P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, p10, p11);
		}
		public static Method<P7, P8, P9, P10, P11> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10), default(P11)).Call7;
		}
		public static Method<P7, P8, P9, P10, P11> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10), default(P11)).Call7;
		}
		public void Call8(P8 p8)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, Parameter9, Parameter10, Parameter11);
		}
		public static Method<P8> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P9 p9, P10 p10, P11 p11)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), p9, p10, p11).Call8;
		}
		public void Call8(P8 p8, P9 p9)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, Parameter10, Parameter11);
		}
		public static Method<P8, P9> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P10 p10, P11 p11)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), p10, p11).Call8;
		}
		public void Call8(P8 p8, P9 p9, P10 p10)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, p10, Parameter11);
		}
		public static Method<P8, P9, P10> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P11 p11)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10), p11).Call8;
		}
		public void Call8(P8 p8, P9 p9, P10 p10, P11 p11)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, p10, p11);
		}
		public static Method<P8, P9, P10, P11> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10), default(P11)).Call8;
		}
		public static Method<P8, P9, P10, P11> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10), default(P11)).Call8;
		}
		public void Call9(P9 p9)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, Parameter10, Parameter11);
		}
		public static Method<P9> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f, P10 p10, P11 p11)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), p10, p11).Call9;
		}
		public void Call9(P9 p9, P10 p10)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, p10, Parameter11);
		}
		public static Method<P9, P10> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f, P11 p11)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10), p11).Call9;
		}
		public void Call9(P9 p9, P10 p10, P11 p11)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, p10, p11);
		}
		public static Method<P9, P10, P11> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10), default(P11)).Call9;
		}
		public static Method<P9, P10, P11> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10), default(P11)).Call9;
		}
		public void Call10(P10 p10)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, p10, Parameter11);
		}
		public static Method<P10> At10(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f, P11 p11)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10), p11).Call10;
		}
		public void Call10(P10 p10, P11 p11)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, p10, p11);
		}
		public static Method<P10, P11> At10(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10), default(P11)).Call10;
		}
		public static Method<P10, P11> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10), default(P11)).Call10;
		}
		public void Call11(P11 p11)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, p11);
		}
		public static Method<P11> At11(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, default(P11)).Call11;
		}
		public static Method<P11> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, default(P11)).Call11;
		}
	}
	public class AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>
	{
		public readonly Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12> F;
		public P1 Parameter1;
		public P2 Parameter2;
		public P3 Parameter3;
		public P4 Parameter4;
		public P5 Parameter5;
		public P6 Parameter6;
		public P7 Parameter7;
		public P8 Parameter8;
		public P9 Parameter9;
		public P10 Parameter10;
		public P11 Parameter11;
		public P12 Parameter12;
		public AMethod(Delegate f)
		{
			F = (Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>)Delegate.CreateDelegate(typeof(Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>), f.Target, f.Method);
		}
		public AMethod(Delegate f, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			F = (Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>)Delegate.CreateDelegate(typeof(Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>), f.Target, f.Method);
			Parameter1 = p1;
			Parameter2 = p2;
			Parameter3 = p3;
			Parameter4 = p4;
			Parameter5 = p5;
			Parameter6 = p6;
			Parameter7 = p7;
			Parameter8 = p8;
			Parameter9 = p9;
			Parameter10 = p10;
			Parameter11 = p11;
			Parameter12 = p12;
		}
		public void Call()
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Method From(Delegate f, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12).Call;
		}
		public void Call1(P1 p1)
		{
			F(p1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Method<P1> At1(Delegate f, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, default(P1), p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12).Call1;
		}
		public static Method<P1> AtBegin(Delegate f, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, default(P1), p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12).Call1;
		}
		public void Call1(P1 p1, P2 p2)
		{
			F(p1, p2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Method<P1, P2> At1(Delegate f, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, default(P1), default(P2), p3, p4, p5, p6, p7, p8, p9, p10, p11, p12).Call1;
		}
		public static Method<P1, P2> AtBegin(Delegate f, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, default(P1), default(P2), p3, p4, p5, p6, p7, p8, p9, p10, p11, p12).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3)
		{
			F(p1, p2, p3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Method<P1, P2, P3> At1(Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, default(P1), default(P2), default(P3), p4, p5, p6, p7, p8, p9, p10, p11, p12).Call1;
		}
		public static Method<P1, P2, P3> AtBegin(Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, default(P1), default(P2), default(P3), p4, p5, p6, p7, p8, p9, p10, p11, p12).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4)
		{
			F(p1, p2, p3, p4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Method<P1, P2, P3, P4> At1(Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, default(P1), default(P2), default(P3), default(P4), p5, p6, p7, p8, p9, p10, p11, p12).Call1;
		}
		public static Method<P1, P2, P3, P4> AtBegin(Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, default(P1), default(P2), default(P3), default(P4), p5, p6, p7, p8, p9, p10, p11, p12).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
		{
			F(p1, p2, p3, p4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Method<P1, P2, P3, P4, P5> At1(Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, default(P1), default(P2), default(P3), default(P4), default(P5), p6, p7, p8, p9, p10, p11, p12).Call1;
		}
		public static Method<P1, P2, P3, P4, P5> AtBegin(Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, default(P1), default(P2), default(P3), default(P4), default(P5), p6, p7, p8, p9, p10, p11, p12).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
		{
			F(p1, p2, p3, p4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Method<P1, P2, P3, P4, P5, P6> At1(Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), p7, p8, p9, p10, p11, p12).Call1;
		}
		public static Method<P1, P2, P3, P4, P5, P6> AtBegin(Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), p7, p8, p9, p10, p11, p12).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			F(p1, p2, p3, p4, p5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7> At1(Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), p8, p9, p10, p11, p12).Call1;
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7> AtBegin(Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), p8, p9, p10, p11, p12).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			F(p1, p2, p3, p4, p5, p6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8> At1(Delegate f, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10, p11, p12).Call1;
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8> AtBegin(Delegate f, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10, p11, p12).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			F(p1, p2, p3, p4, p5, p6, p7, p8, p9, Parameter10, Parameter11, Parameter12);
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8, P9> At1(Delegate f, P10 p10, P11 p11, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11, p12).Call1;
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8, P9> AtBegin(Delegate f, P10 p10, P11 p11, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11, p12).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			F(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, Parameter11, Parameter12);
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10> At1(Delegate f, P11 p11, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12).Call1;
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10> AtBegin(Delegate f, P11 p11, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			F(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, Parameter12);
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11> At1(Delegate f, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12).Call1;
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11> AtBegin(Delegate f, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12).Call1;
		}
		public void Call2(P2 p2)
		{
			F(Parameter1, p2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Method<P2> At2(P1 p1, Delegate f, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, default(P2), p3, p4, p5, p6, p7, p8, p9, p10, p11, p12).Call2;
		}
		public void Call2(P2 p2, P3 p3)
		{
			F(Parameter1, p2, p3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Method<P2, P3> At2(P1 p1, Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, default(P2), default(P3), p4, p5, p6, p7, p8, p9, p10, p11, p12).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4)
		{
			F(Parameter1, p2, p3, p4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Method<P2, P3, P4> At2(P1 p1, Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, default(P2), default(P3), default(P4), p5, p6, p7, p8, p9, p10, p11, p12).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5)
		{
			F(Parameter1, p2, p3, p4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Method<P2, P3, P4, P5> At2(P1 p1, Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, default(P2), default(P3), default(P4), default(P5), p6, p7, p8, p9, p10, p11, p12).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
		{
			F(Parameter1, p2, p3, p4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Method<P2, P3, P4, P5, P6> At2(P1 p1, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), p7, p8, p9, p10, p11, p12).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			F(Parameter1, p2, p3, p4, p5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Method<P2, P3, P4, P5, P6, P7> At2(P1 p1, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), p8, p9, p10, p11, p12).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			F(Parameter1, p2, p3, p4, p5, p6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Method<P2, P3, P4, P5, P6, P7, P8> At2(P1 p1, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10, p11, p12).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, Parameter10, Parameter11, Parameter12);
		}
		public static Method<P2, P3, P4, P5, P6, P7, P8, P9> At2(P1 p1, Delegate f, P10 p10, P11 p11, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11, p12).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, p10, Parameter11, Parameter12);
		}
		public static Method<P2, P3, P4, P5, P6, P7, P8, P9, P10> At2(P1 p1, Delegate f, P11 p11, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, Parameter12);
		}
		public static Method<P2, P3, P4, P5, P6, P7, P8, P9, P10, P11> At2(P1 p1, Delegate f, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12);
		}
		public static Method<P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12> At2(P1 p1, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12)).Call2;
		}
		public static Method<P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12> AtEnd(P1 p1, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12)).Call2;
		}
		public void Call3(P3 p3)
		{
			F(Parameter1, Parameter2, p3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Method<P3> At3(P1 p1, P2 p2, Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, default(P3), p4, p5, p6, p7, p8, p9, p10, p11, p12).Call3;
		}
		public void Call3(P3 p3, P4 p4)
		{
			F(Parameter1, Parameter2, p3, p4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Method<P3, P4> At3(P1 p1, P2 p2, Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, default(P3), default(P4), p5, p6, p7, p8, p9, p10, p11, p12).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5)
		{
			F(Parameter1, Parameter2, p3, p4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Method<P3, P4, P5> At3(P1 p1, P2 p2, Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, default(P3), default(P4), default(P5), p6, p7, p8, p9, p10, p11, p12).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5, P6 p6)
		{
			F(Parameter1, Parameter2, p3, p4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Method<P3, P4, P5, P6> At3(P1 p1, P2 p2, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), p7, p8, p9, p10, p11, p12).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			F(Parameter1, Parameter2, p3, p4, p5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Method<P3, P4, P5, P6, P7> At3(P1 p1, P2 p2, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), p8, p9, p10, p11, p12).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Method<P3, P4, P5, P6, P7, P8> At3(P1 p1, P2 p2, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10, p11, p12).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, Parameter10, Parameter11, Parameter12);
		}
		public static Method<P3, P4, P5, P6, P7, P8, P9> At3(P1 p1, P2 p2, Delegate f, P10 p10, P11 p11, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11, p12).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, p10, Parameter11, Parameter12);
		}
		public static Method<P3, P4, P5, P6, P7, P8, P9, P10> At3(P1 p1, P2 p2, Delegate f, P11 p11, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, p10, p11, Parameter12);
		}
		public static Method<P3, P4, P5, P6, P7, P8, P9, P10, P11> At3(P1 p1, P2 p2, Delegate f, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12);
		}
		public static Method<P3, P4, P5, P6, P7, P8, P9, P10, P11, P12> At3(P1 p1, P2 p2, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12)).Call3;
		}
		public static Method<P3, P4, P5, P6, P7, P8, P9, P10, P11, P12> AtEnd(P1 p1, P2 p2, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12)).Call3;
		}
		public void Call4(P4 p4)
		{
			F(Parameter1, Parameter2, Parameter3, p4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Method<P4> At4(P1 p1, P2 p2, P3 p3, Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, default(P4), p5, p6, p7, p8, p9, p10, p11, p12).Call4;
		}
		public void Call4(P4 p4, P5 p5)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Method<P4, P5> At4(P1 p1, P2 p2, P3 p3, Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, default(P4), default(P5), p6, p7, p8, p9, p10, p11, p12).Call4;
		}
		public void Call4(P4 p4, P5 p5, P6 p6)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Method<P4, P5, P6> At4(P1 p1, P2 p2, P3 p3, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, default(P4), default(P5), default(P6), p7, p8, p9, p10, p11, p12).Call4;
		}
		public void Call4(P4 p4, P5 p5, P6 p6, P7 p7)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Method<P4, P5, P6, P7> At4(P1 p1, P2 p2, P3 p3, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), p8, p9, p10, p11, p12).Call4;
		}
		public void Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Method<P4, P5, P6, P7, P8> At4(P1 p1, P2 p2, P3 p3, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10, p11, p12).Call4;
		}
		public void Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, Parameter10, Parameter11, Parameter12);
		}
		public static Method<P4, P5, P6, P7, P8, P9> At4(P1 p1, P2 p2, P3 p3, Delegate f, P10 p10, P11 p11, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11, p12).Call4;
		}
		public void Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, p10, Parameter11, Parameter12);
		}
		public static Method<P4, P5, P6, P7, P8, P9, P10> At4(P1 p1, P2 p2, P3 p3, Delegate f, P11 p11, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12).Call4;
		}
		public void Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, p10, p11, Parameter12);
		}
		public static Method<P4, P5, P6, P7, P8, P9, P10, P11> At4(P1 p1, P2 p2, P3 p3, Delegate f, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12).Call4;
		}
		public void Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, p10, p11, p12);
		}
		public static Method<P4, P5, P6, P7, P8, P9, P10, P11, P12> At4(P1 p1, P2 p2, P3 p3, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12)).Call4;
		}
		public static Method<P4, P5, P6, P7, P8, P9, P10, P11, P12> AtEnd(P1 p1, P2 p2, P3 p3, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12)).Call4;
		}
		public void Call5(P5 p5)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Method<P5> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, default(P5), p6, p7, p8, p9, p10, p11, p12).Call5;
		}
		public void Call5(P5 p5, P6 p6)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Method<P5, P6> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, default(P5), default(P6), p7, p8, p9, p10, p11, p12).Call5;
		}
		public void Call5(P5 p5, P6 p6, P7 p7)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Method<P5, P6, P7> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), p8, p9, p10, p11, p12).Call5;
		}
		public void Call5(P5 p5, P6 p6, P7 p7, P8 p8)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Method<P5, P6, P7, P8> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), p9, p10, p11, p12).Call5;
		}
		public void Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, Parameter10, Parameter11, Parameter12);
		}
		public static Method<P5, P6, P7, P8, P9> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P10 p10, P11 p11, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11, p12).Call5;
		}
		public void Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, p10, Parameter11, Parameter12);
		}
		public static Method<P5, P6, P7, P8, P9, P10> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P11 p11, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12).Call5;
		}
		public void Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, p10, p11, Parameter12);
		}
		public static Method<P5, P6, P7, P8, P9, P10, P11> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12).Call5;
		}
		public void Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, p10, p11, p12);
		}
		public static Method<P5, P6, P7, P8, P9, P10, P11, P12> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12)).Call5;
		}
		public static Method<P5, P6, P7, P8, P9, P10, P11, P12> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12)).Call5;
		}
		public void Call6(P6 p6)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Method<P6> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, default(P6), p7, p8, p9, p10, p11, p12).Call6;
		}
		public void Call6(P6 p6, P7 p7)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Method<P6, P7> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, default(P6), default(P7), p8, p9, p10, p11, p12).Call6;
		}
		public void Call6(P6 p6, P7 p7, P8 p8)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Method<P6, P7, P8> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), p9, p10, p11, p12).Call6;
		}
		public void Call6(P6 p6, P7 p7, P8 p8, P9 p9)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, Parameter10, Parameter11, Parameter12);
		}
		public static Method<P6, P7, P8, P9> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P10 p10, P11 p11, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), p10, p11, p12).Call6;
		}
		public void Call6(P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, p10, Parameter11, Parameter12);
		}
		public static Method<P6, P7, P8, P9, P10> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P11 p11, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12).Call6;
		}
		public void Call6(P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, p10, p11, Parameter12);
		}
		public static Method<P6, P7, P8, P9, P10, P11> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12).Call6;
		}
		public void Call6(P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, p10, p11, p12);
		}
		public static Method<P6, P7, P8, P9, P10, P11, P12> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12)).Call6;
		}
		public static Method<P6, P7, P8, P9, P10, P11, P12> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12)).Call6;
		}
		public void Call7(P7 p7)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Method<P7> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, p6, default(P7), p8, p9, p10, p11, p12).Call7;
		}
		public void Call7(P7 p7, P8 p8)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Method<P7, P8> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), p9, p10, p11, p12).Call7;
		}
		public void Call7(P7 p7, P8 p8, P9 p9)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, Parameter10, Parameter11, Parameter12);
		}
		public static Method<P7, P8, P9> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P10 p10, P11 p11, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), p10, p11, p12).Call7;
		}
		public void Call7(P7 p7, P8 p8, P9 p9, P10 p10)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, p10, Parameter11, Parameter12);
		}
		public static Method<P7, P8, P9, P10> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P11 p11, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10), p11, p12).Call7;
		}
		public void Call7(P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, p10, p11, Parameter12);
		}
		public static Method<P7, P8, P9, P10, P11> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10), default(P11), p12).Call7;
		}
		public void Call7(P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, p10, p11, p12);
		}
		public static Method<P7, P8, P9, P10, P11, P12> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10), default(P11), default(P12)).Call7;
		}
		public static Method<P7, P8, P9, P10, P11, P12> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10), default(P11), default(P12)).Call7;
		}
		public void Call8(P8 p8)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Method<P8> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), p9, p10, p11, p12).Call8;
		}
		public void Call8(P8 p8, P9 p9)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, Parameter10, Parameter11, Parameter12);
		}
		public static Method<P8, P9> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P10 p10, P11 p11, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), p10, p11, p12).Call8;
		}
		public void Call8(P8 p8, P9 p9, P10 p10)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, p10, Parameter11, Parameter12);
		}
		public static Method<P8, P9, P10> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P11 p11, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10), p11, p12).Call8;
		}
		public void Call8(P8 p8, P9 p9, P10 p10, P11 p11)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, p10, p11, Parameter12);
		}
		public static Method<P8, P9, P10, P11> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10), default(P11), p12).Call8;
		}
		public void Call8(P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, p10, p11, p12);
		}
		public static Method<P8, P9, P10, P11, P12> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10), default(P11), default(P12)).Call8;
		}
		public static Method<P8, P9, P10, P11, P12> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10), default(P11), default(P12)).Call8;
		}
		public void Call9(P9 p9)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, Parameter10, Parameter11, Parameter12);
		}
		public static Method<P9> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f, P10 p10, P11 p11, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), p10, p11, p12).Call9;
		}
		public void Call9(P9 p9, P10 p10)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, p10, Parameter11, Parameter12);
		}
		public static Method<P9, P10> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f, P11 p11, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10), p11, p12).Call9;
		}
		public void Call9(P9 p9, P10 p10, P11 p11)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, p10, p11, Parameter12);
		}
		public static Method<P9, P10, P11> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10), default(P11), p12).Call9;
		}
		public void Call9(P9 p9, P10 p10, P11 p11, P12 p12)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, p10, p11, p12);
		}
		public static Method<P9, P10, P11, P12> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10), default(P11), default(P12)).Call9;
		}
		public static Method<P9, P10, P11, P12> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10), default(P11), default(P12)).Call9;
		}
		public void Call10(P10 p10)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, p10, Parameter11, Parameter12);
		}
		public static Method<P10> At10(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f, P11 p11, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10), p11, p12).Call10;
		}
		public void Call10(P10 p10, P11 p11)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, p10, p11, Parameter12);
		}
		public static Method<P10, P11> At10(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10), default(P11), p12).Call10;
		}
		public void Call10(P10 p10, P11 p11, P12 p12)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, p10, p11, p12);
		}
		public static Method<P10, P11, P12> At10(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10), default(P11), default(P12)).Call10;
		}
		public static Method<P10, P11, P12> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10), default(P11), default(P12)).Call10;
		}
		public void Call11(P11 p11)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, p11, Parameter12);
		}
		public static Method<P11> At11(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, Delegate f, P12 p12)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, default(P11), p12).Call11;
		}
		public void Call11(P11 p11, P12 p12)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, p11, p12);
		}
		public static Method<P11, P12> At11(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, default(P11), default(P12)).Call11;
		}
		public static Method<P11, P12> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, default(P11), default(P12)).Call11;
		}
		public void Call12(P12 p12)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, p12);
		}
		public static Method<P12> At12(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, default(P12)).Call12;
		}
		public static Method<P12> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, default(P12)).Call12;
		}
	}
	public class AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>
	{
		public readonly Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13> F;
		public P1 Parameter1;
		public P2 Parameter2;
		public P3 Parameter3;
		public P4 Parameter4;
		public P5 Parameter5;
		public P6 Parameter6;
		public P7 Parameter7;
		public P8 Parameter8;
		public P9 Parameter9;
		public P10 Parameter10;
		public P11 Parameter11;
		public P12 Parameter12;
		public P13 Parameter13;
		public AMethod(Delegate f)
		{
			F = (Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>)Delegate.CreateDelegate(typeof(Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>), f.Target, f.Method);
		}
		public AMethod(Delegate f, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			F = (Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>)Delegate.CreateDelegate(typeof(Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>), f.Target, f.Method);
			Parameter1 = p1;
			Parameter2 = p2;
			Parameter3 = p3;
			Parameter4 = p4;
			Parameter5 = p5;
			Parameter6 = p6;
			Parameter7 = p7;
			Parameter8 = p8;
			Parameter9 = p9;
			Parameter10 = p10;
			Parameter11 = p11;
			Parameter12 = p12;
			Parameter13 = p13;
		}
		public void Call()
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Method From(Delegate f, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13).Call;
		}
		public void Call1(P1 p1)
		{
			F(p1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Method<P1> At1(Delegate f, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, default(P1), p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13).Call1;
		}
		public static Method<P1> AtBegin(Delegate f, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, default(P1), p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13).Call1;
		}
		public void Call1(P1 p1, P2 p2)
		{
			F(p1, p2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Method<P1, P2> At1(Delegate f, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, default(P1), default(P2), p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13).Call1;
		}
		public static Method<P1, P2> AtBegin(Delegate f, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, default(P1), default(P2), p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3)
		{
			F(p1, p2, p3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Method<P1, P2, P3> At1(Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, default(P1), default(P2), default(P3), p4, p5, p6, p7, p8, p9, p10, p11, p12, p13).Call1;
		}
		public static Method<P1, P2, P3> AtBegin(Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, default(P1), default(P2), default(P3), p4, p5, p6, p7, p8, p9, p10, p11, p12, p13).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4)
		{
			F(p1, p2, p3, p4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Method<P1, P2, P3, P4> At1(Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, default(P1), default(P2), default(P3), default(P4), p5, p6, p7, p8, p9, p10, p11, p12, p13).Call1;
		}
		public static Method<P1, P2, P3, P4> AtBegin(Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, default(P1), default(P2), default(P3), default(P4), p5, p6, p7, p8, p9, p10, p11, p12, p13).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
		{
			F(p1, p2, p3, p4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Method<P1, P2, P3, P4, P5> At1(Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, default(P1), default(P2), default(P3), default(P4), default(P5), p6, p7, p8, p9, p10, p11, p12, p13).Call1;
		}
		public static Method<P1, P2, P3, P4, P5> AtBegin(Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, default(P1), default(P2), default(P3), default(P4), default(P5), p6, p7, p8, p9, p10, p11, p12, p13).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
		{
			F(p1, p2, p3, p4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Method<P1, P2, P3, P4, P5, P6> At1(Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), p7, p8, p9, p10, p11, p12, p13).Call1;
		}
		public static Method<P1, P2, P3, P4, P5, P6> AtBegin(Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), p7, p8, p9, p10, p11, p12, p13).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			F(p1, p2, p3, p4, p5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7> At1(Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), p8, p9, p10, p11, p12, p13).Call1;
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7> AtBegin(Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), p8, p9, p10, p11, p12, p13).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			F(p1, p2, p3, p4, p5, p6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8> At1(Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10, p11, p12, p13).Call1;
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8> AtBegin(Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10, p11, p12, p13).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			F(p1, p2, p3, p4, p5, p6, p7, p8, p9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8, P9> At1(Delegate f, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11, p12, p13).Call1;
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8, P9> AtBegin(Delegate f, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11, p12, p13).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			F(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, Parameter11, Parameter12, Parameter13);
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10> At1(Delegate f, P11 p11, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12, p13).Call1;
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10> AtBegin(Delegate f, P11 p11, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12, p13).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			F(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, Parameter12, Parameter13);
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11> At1(Delegate f, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12, p13).Call1;
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11> AtBegin(Delegate f, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12, p13).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			F(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, Parameter13);
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12> At1(Delegate f, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), p13).Call1;
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12> AtBegin(Delegate f, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), p13).Call1;
		}
		public void Call2(P2 p2)
		{
			F(Parameter1, p2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Method<P2> At2(P1 p1, Delegate f, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, default(P2), p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13).Call2;
		}
		public void Call2(P2 p2, P3 p3)
		{
			F(Parameter1, p2, p3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Method<P2, P3> At2(P1 p1, Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, default(P2), default(P3), p4, p5, p6, p7, p8, p9, p10, p11, p12, p13).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4)
		{
			F(Parameter1, p2, p3, p4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Method<P2, P3, P4> At2(P1 p1, Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, default(P2), default(P3), default(P4), p5, p6, p7, p8, p9, p10, p11, p12, p13).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5)
		{
			F(Parameter1, p2, p3, p4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Method<P2, P3, P4, P5> At2(P1 p1, Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, default(P2), default(P3), default(P4), default(P5), p6, p7, p8, p9, p10, p11, p12, p13).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
		{
			F(Parameter1, p2, p3, p4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Method<P2, P3, P4, P5, P6> At2(P1 p1, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), p7, p8, p9, p10, p11, p12, p13).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			F(Parameter1, p2, p3, p4, p5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Method<P2, P3, P4, P5, P6, P7> At2(P1 p1, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), p8, p9, p10, p11, p12, p13).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			F(Parameter1, p2, p3, p4, p5, p6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Method<P2, P3, P4, P5, P6, P7, P8> At2(P1 p1, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10, p11, p12, p13).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Method<P2, P3, P4, P5, P6, P7, P8, P9> At2(P1 p1, Delegate f, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11, p12, p13).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, p10, Parameter11, Parameter12, Parameter13);
		}
		public static Method<P2, P3, P4, P5, P6, P7, P8, P9, P10> At2(P1 p1, Delegate f, P11 p11, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12, p13).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, Parameter12, Parameter13);
		}
		public static Method<P2, P3, P4, P5, P6, P7, P8, P9, P10, P11> At2(P1 p1, Delegate f, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12, p13).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, Parameter13);
		}
		public static Method<P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12> At2(P1 p1, Delegate f, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), p13).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13);
		}
		public static Method<P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13> At2(P1 p1, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13)).Call2;
		}
		public static Method<P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13> AtEnd(P1 p1, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13)).Call2;
		}
		public void Call3(P3 p3)
		{
			F(Parameter1, Parameter2, p3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Method<P3> At3(P1 p1, P2 p2, Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, default(P3), p4, p5, p6, p7, p8, p9, p10, p11, p12, p13).Call3;
		}
		public void Call3(P3 p3, P4 p4)
		{
			F(Parameter1, Parameter2, p3, p4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Method<P3, P4> At3(P1 p1, P2 p2, Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, default(P3), default(P4), p5, p6, p7, p8, p9, p10, p11, p12, p13).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5)
		{
			F(Parameter1, Parameter2, p3, p4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Method<P3, P4, P5> At3(P1 p1, P2 p2, Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, default(P3), default(P4), default(P5), p6, p7, p8, p9, p10, p11, p12, p13).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5, P6 p6)
		{
			F(Parameter1, Parameter2, p3, p4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Method<P3, P4, P5, P6> At3(P1 p1, P2 p2, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), p7, p8, p9, p10, p11, p12, p13).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			F(Parameter1, Parameter2, p3, p4, p5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Method<P3, P4, P5, P6, P7> At3(P1 p1, P2 p2, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), p8, p9, p10, p11, p12, p13).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Method<P3, P4, P5, P6, P7, P8> At3(P1 p1, P2 p2, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10, p11, p12, p13).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Method<P3, P4, P5, P6, P7, P8, P9> At3(P1 p1, P2 p2, Delegate f, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11, p12, p13).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, p10, Parameter11, Parameter12, Parameter13);
		}
		public static Method<P3, P4, P5, P6, P7, P8, P9, P10> At3(P1 p1, P2 p2, Delegate f, P11 p11, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12, p13).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, p10, p11, Parameter12, Parameter13);
		}
		public static Method<P3, P4, P5, P6, P7, P8, P9, P10, P11> At3(P1 p1, P2 p2, Delegate f, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12, p13).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, Parameter13);
		}
		public static Method<P3, P4, P5, P6, P7, P8, P9, P10, P11, P12> At3(P1 p1, P2 p2, Delegate f, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), p13).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13);
		}
		public static Method<P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13> At3(P1 p1, P2 p2, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13)).Call3;
		}
		public static Method<P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13> AtEnd(P1 p1, P2 p2, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13)).Call3;
		}
		public void Call4(P4 p4)
		{
			F(Parameter1, Parameter2, Parameter3, p4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Method<P4> At4(P1 p1, P2 p2, P3 p3, Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, default(P4), p5, p6, p7, p8, p9, p10, p11, p12, p13).Call4;
		}
		public void Call4(P4 p4, P5 p5)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Method<P4, P5> At4(P1 p1, P2 p2, P3 p3, Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, default(P4), default(P5), p6, p7, p8, p9, p10, p11, p12, p13).Call4;
		}
		public void Call4(P4 p4, P5 p5, P6 p6)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Method<P4, P5, P6> At4(P1 p1, P2 p2, P3 p3, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, default(P4), default(P5), default(P6), p7, p8, p9, p10, p11, p12, p13).Call4;
		}
		public void Call4(P4 p4, P5 p5, P6 p6, P7 p7)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Method<P4, P5, P6, P7> At4(P1 p1, P2 p2, P3 p3, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), p8, p9, p10, p11, p12, p13).Call4;
		}
		public void Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Method<P4, P5, P6, P7, P8> At4(P1 p1, P2 p2, P3 p3, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10, p11, p12, p13).Call4;
		}
		public void Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Method<P4, P5, P6, P7, P8, P9> At4(P1 p1, P2 p2, P3 p3, Delegate f, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11, p12, p13).Call4;
		}
		public void Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, p10, Parameter11, Parameter12, Parameter13);
		}
		public static Method<P4, P5, P6, P7, P8, P9, P10> At4(P1 p1, P2 p2, P3 p3, Delegate f, P11 p11, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12, p13).Call4;
		}
		public void Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, p10, p11, Parameter12, Parameter13);
		}
		public static Method<P4, P5, P6, P7, P8, P9, P10, P11> At4(P1 p1, P2 p2, P3 p3, Delegate f, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12, p13).Call4;
		}
		public void Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, p10, p11, p12, Parameter13);
		}
		public static Method<P4, P5, P6, P7, P8, P9, P10, P11, P12> At4(P1 p1, P2 p2, P3 p3, Delegate f, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), p13).Call4;
		}
		public void Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13);
		}
		public static Method<P4, P5, P6, P7, P8, P9, P10, P11, P12, P13> At4(P1 p1, P2 p2, P3 p3, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13)).Call4;
		}
		public static Method<P4, P5, P6, P7, P8, P9, P10, P11, P12, P13> AtEnd(P1 p1, P2 p2, P3 p3, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13)).Call4;
		}
		public void Call5(P5 p5)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Method<P5> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, default(P5), p6, p7, p8, p9, p10, p11, p12, p13).Call5;
		}
		public void Call5(P5 p5, P6 p6)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Method<P5, P6> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, default(P5), default(P6), p7, p8, p9, p10, p11, p12, p13).Call5;
		}
		public void Call5(P5 p5, P6 p6, P7 p7)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Method<P5, P6, P7> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), p8, p9, p10, p11, p12, p13).Call5;
		}
		public void Call5(P5 p5, P6 p6, P7 p7, P8 p8)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Method<P5, P6, P7, P8> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), p9, p10, p11, p12, p13).Call5;
		}
		public void Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Method<P5, P6, P7, P8, P9> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11, p12, p13).Call5;
		}
		public void Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, p10, Parameter11, Parameter12, Parameter13);
		}
		public static Method<P5, P6, P7, P8, P9, P10> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P11 p11, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12, p13).Call5;
		}
		public void Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, p10, p11, Parameter12, Parameter13);
		}
		public static Method<P5, P6, P7, P8, P9, P10, P11> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12, p13).Call5;
		}
		public void Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, p10, p11, p12, Parameter13);
		}
		public static Method<P5, P6, P7, P8, P9, P10, P11, P12> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), p13).Call5;
		}
		public void Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, p10, p11, p12, p13);
		}
		public static Method<P5, P6, P7, P8, P9, P10, P11, P12, P13> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13)).Call5;
		}
		public static Method<P5, P6, P7, P8, P9, P10, P11, P12, P13> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13)).Call5;
		}
		public void Call6(P6 p6)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Method<P6> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, default(P6), p7, p8, p9, p10, p11, p12, p13).Call6;
		}
		public void Call6(P6 p6, P7 p7)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Method<P6, P7> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, default(P6), default(P7), p8, p9, p10, p11, p12, p13).Call6;
		}
		public void Call6(P6 p6, P7 p7, P8 p8)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Method<P6, P7, P8> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), p9, p10, p11, p12, p13).Call6;
		}
		public void Call6(P6 p6, P7 p7, P8 p8, P9 p9)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Method<P6, P7, P8, P9> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), p10, p11, p12, p13).Call6;
		}
		public void Call6(P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, p10, Parameter11, Parameter12, Parameter13);
		}
		public static Method<P6, P7, P8, P9, P10> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P11 p11, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12, p13).Call6;
		}
		public void Call6(P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, p10, p11, Parameter12, Parameter13);
		}
		public static Method<P6, P7, P8, P9, P10, P11> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12, p13).Call6;
		}
		public void Call6(P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, p10, p11, p12, Parameter13);
		}
		public static Method<P6, P7, P8, P9, P10, P11, P12> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), p13).Call6;
		}
		public void Call6(P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, p10, p11, p12, p13);
		}
		public static Method<P6, P7, P8, P9, P10, P11, P12, P13> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13)).Call6;
		}
		public static Method<P6, P7, P8, P9, P10, P11, P12, P13> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13)).Call6;
		}
		public void Call7(P7 p7)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Method<P7> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, default(P7), p8, p9, p10, p11, p12, p13).Call7;
		}
		public void Call7(P7 p7, P8 p8)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Method<P7, P8> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), p9, p10, p11, p12, p13).Call7;
		}
		public void Call7(P7 p7, P8 p8, P9 p9)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Method<P7, P8, P9> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), p10, p11, p12, p13).Call7;
		}
		public void Call7(P7 p7, P8 p8, P9 p9, P10 p10)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, p10, Parameter11, Parameter12, Parameter13);
		}
		public static Method<P7, P8, P9, P10> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P11 p11, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10), p11, p12, p13).Call7;
		}
		public void Call7(P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, p10, p11, Parameter12, Parameter13);
		}
		public static Method<P7, P8, P9, P10, P11> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10), default(P11), p12, p13).Call7;
		}
		public void Call7(P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, p10, p11, p12, Parameter13);
		}
		public static Method<P7, P8, P9, P10, P11, P12> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), p13).Call7;
		}
		public void Call7(P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, p10, p11, p12, p13);
		}
		public static Method<P7, P8, P9, P10, P11, P12, P13> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13)).Call7;
		}
		public static Method<P7, P8, P9, P10, P11, P12, P13> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13)).Call7;
		}
		public void Call8(P8 p8)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Method<P8> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), p9, p10, p11, p12, p13).Call8;
		}
		public void Call8(P8 p8, P9 p9)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Method<P8, P9> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), p10, p11, p12, p13).Call8;
		}
		public void Call8(P8 p8, P9 p9, P10 p10)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, p10, Parameter11, Parameter12, Parameter13);
		}
		public static Method<P8, P9, P10> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P11 p11, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10), p11, p12, p13).Call8;
		}
		public void Call8(P8 p8, P9 p9, P10 p10, P11 p11)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, p10, p11, Parameter12, Parameter13);
		}
		public static Method<P8, P9, P10, P11> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10), default(P11), p12, p13).Call8;
		}
		public void Call8(P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, p10, p11, p12, Parameter13);
		}
		public static Method<P8, P9, P10, P11, P12> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10), default(P11), default(P12), p13).Call8;
		}
		public void Call8(P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, p10, p11, p12, p13);
		}
		public static Method<P8, P9, P10, P11, P12, P13> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10), default(P11), default(P12), default(P13)).Call8;
		}
		public static Method<P8, P9, P10, P11, P12, P13> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10), default(P11), default(P12), default(P13)).Call8;
		}
		public void Call9(P9 p9)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Method<P9> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), p10, p11, p12, p13).Call9;
		}
		public void Call9(P9 p9, P10 p10)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, p10, Parameter11, Parameter12, Parameter13);
		}
		public static Method<P9, P10> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f, P11 p11, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10), p11, p12, p13).Call9;
		}
		public void Call9(P9 p9, P10 p10, P11 p11)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, p10, p11, Parameter12, Parameter13);
		}
		public static Method<P9, P10, P11> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10), default(P11), p12, p13).Call9;
		}
		public void Call9(P9 p9, P10 p10, P11 p11, P12 p12)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, p10, p11, p12, Parameter13);
		}
		public static Method<P9, P10, P11, P12> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10), default(P11), default(P12), p13).Call9;
		}
		public void Call9(P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, p10, p11, p12, p13);
		}
		public static Method<P9, P10, P11, P12, P13> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10), default(P11), default(P12), default(P13)).Call9;
		}
		public static Method<P9, P10, P11, P12, P13> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10), default(P11), default(P12), default(P13)).Call9;
		}
		public void Call10(P10 p10)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, p10, Parameter11, Parameter12, Parameter13);
		}
		public static Method<P10> At10(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f, P11 p11, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10), p11, p12, p13).Call10;
		}
		public void Call10(P10 p10, P11 p11)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, p10, p11, Parameter12, Parameter13);
		}
		public static Method<P10, P11> At10(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10), default(P11), p12, p13).Call10;
		}
		public void Call10(P10 p10, P11 p11, P12 p12)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, p10, p11, p12, Parameter13);
		}
		public static Method<P10, P11, P12> At10(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10), default(P11), default(P12), p13).Call10;
		}
		public void Call10(P10 p10, P11 p11, P12 p12, P13 p13)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, p10, p11, p12, p13);
		}
		public static Method<P10, P11, P12, P13> At10(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10), default(P11), default(P12), default(P13)).Call10;
		}
		public static Method<P10, P11, P12, P13> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10), default(P11), default(P12), default(P13)).Call10;
		}
		public void Call11(P11 p11)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, p11, Parameter12, Parameter13);
		}
		public static Method<P11> At11(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, Delegate f, P12 p12, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, default(P11), p12, p13).Call11;
		}
		public void Call11(P11 p11, P12 p12)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, p11, p12, Parameter13);
		}
		public static Method<P11, P12> At11(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, Delegate f, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, default(P11), default(P12), p13).Call11;
		}
		public void Call11(P11 p11, P12 p12, P13 p13)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, p11, p12, p13);
		}
		public static Method<P11, P12, P13> At11(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, default(P11), default(P12), default(P13)).Call11;
		}
		public static Method<P11, P12, P13> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, default(P11), default(P12), default(P13)).Call11;
		}
		public void Call12(P12 p12)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, p12, Parameter13);
		}
		public static Method<P12> At12(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, Delegate f, P13 p13)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, default(P12), p13).Call12;
		}
		public void Call12(P12 p12, P13 p13)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, p12, p13);
		}
		public static Method<P12, P13> At12(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, default(P12), default(P13)).Call12;
		}
		public static Method<P12, P13> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, default(P12), default(P13)).Call12;
		}
		public void Call13(P13 p13)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, p13);
		}
		public static Method<P13> At13(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, default(P13)).Call13;
		}
		public static Method<P13> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, default(P13)).Call13;
		}
	}
	public class AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>
	{
		public readonly Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14> F;
		public P1 Parameter1;
		public P2 Parameter2;
		public P3 Parameter3;
		public P4 Parameter4;
		public P5 Parameter5;
		public P6 Parameter6;
		public P7 Parameter7;
		public P8 Parameter8;
		public P9 Parameter9;
		public P10 Parameter10;
		public P11 Parameter11;
		public P12 Parameter12;
		public P13 Parameter13;
		public P14 Parameter14;
		public AMethod(Delegate f)
		{
			F = (Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>)Delegate.CreateDelegate(typeof(Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>), f.Target, f.Method);
		}
		public AMethod(Delegate f, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			F = (Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>)Delegate.CreateDelegate(typeof(Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>), f.Target, f.Method);
			Parameter1 = p1;
			Parameter2 = p2;
			Parameter3 = p3;
			Parameter4 = p4;
			Parameter5 = p5;
			Parameter6 = p6;
			Parameter7 = p7;
			Parameter8 = p8;
			Parameter9 = p9;
			Parameter10 = p10;
			Parameter11 = p11;
			Parameter12 = p12;
			Parameter13 = p13;
			Parameter14 = p14;
		}
		public void Call()
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Method From(Delegate f, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14).Call;
		}
		public void Call1(P1 p1)
		{
			F(p1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Method<P1> At1(Delegate f, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, default(P1), p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14).Call1;
		}
		public static Method<P1> AtBegin(Delegate f, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, default(P1), p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14).Call1;
		}
		public void Call1(P1 p1, P2 p2)
		{
			F(p1, p2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Method<P1, P2> At1(Delegate f, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, default(P1), default(P2), p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14).Call1;
		}
		public static Method<P1, P2> AtBegin(Delegate f, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, default(P1), default(P2), p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3)
		{
			F(p1, p2, p3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Method<P1, P2, P3> At1(Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, default(P1), default(P2), default(P3), p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14).Call1;
		}
		public static Method<P1, P2, P3> AtBegin(Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, default(P1), default(P2), default(P3), p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4)
		{
			F(p1, p2, p3, p4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Method<P1, P2, P3, P4> At1(Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, default(P1), default(P2), default(P3), default(P4), p5, p6, p7, p8, p9, p10, p11, p12, p13, p14).Call1;
		}
		public static Method<P1, P2, P3, P4> AtBegin(Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, default(P1), default(P2), default(P3), default(P4), p5, p6, p7, p8, p9, p10, p11, p12, p13, p14).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
		{
			F(p1, p2, p3, p4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Method<P1, P2, P3, P4, P5> At1(Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, default(P1), default(P2), default(P3), default(P4), default(P5), p6, p7, p8, p9, p10, p11, p12, p13, p14).Call1;
		}
		public static Method<P1, P2, P3, P4, P5> AtBegin(Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, default(P1), default(P2), default(P3), default(P4), default(P5), p6, p7, p8, p9, p10, p11, p12, p13, p14).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
		{
			F(p1, p2, p3, p4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Method<P1, P2, P3, P4, P5, P6> At1(Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), p7, p8, p9, p10, p11, p12, p13, p14).Call1;
		}
		public static Method<P1, P2, P3, P4, P5, P6> AtBegin(Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), p7, p8, p9, p10, p11, p12, p13, p14).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			F(p1, p2, p3, p4, p5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7> At1(Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), p8, p9, p10, p11, p12, p13, p14).Call1;
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7> AtBegin(Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), p8, p9, p10, p11, p12, p13, p14).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			F(p1, p2, p3, p4, p5, p6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8> At1(Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10, p11, p12, p13, p14).Call1;
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8> AtBegin(Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10, p11, p12, p13, p14).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			F(p1, p2, p3, p4, p5, p6, p7, p8, p9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8, P9> At1(Delegate f, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11, p12, p13, p14).Call1;
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8, P9> AtBegin(Delegate f, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11, p12, p13, p14).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			F(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10> At1(Delegate f, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12, p13, p14).Call1;
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10> AtBegin(Delegate f, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12, p13, p14).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			F(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, Parameter12, Parameter13, Parameter14);
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11> At1(Delegate f, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12, p13, p14).Call1;
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11> AtBegin(Delegate f, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12, p13, p14).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			F(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, Parameter13, Parameter14);
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12> At1(Delegate f, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), p13, p14).Call1;
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12> AtBegin(Delegate f, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), p13, p14).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			F(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, Parameter14);
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13> At1(Delegate f, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), p14).Call1;
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13> AtBegin(Delegate f, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), p14).Call1;
		}
		public void Call2(P2 p2)
		{
			F(Parameter1, p2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Method<P2> At2(P1 p1, Delegate f, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, default(P2), p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14).Call2;
		}
		public void Call2(P2 p2, P3 p3)
		{
			F(Parameter1, p2, p3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Method<P2, P3> At2(P1 p1, Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, default(P2), default(P3), p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4)
		{
			F(Parameter1, p2, p3, p4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Method<P2, P3, P4> At2(P1 p1, Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, default(P2), default(P3), default(P4), p5, p6, p7, p8, p9, p10, p11, p12, p13, p14).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5)
		{
			F(Parameter1, p2, p3, p4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Method<P2, P3, P4, P5> At2(P1 p1, Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, default(P2), default(P3), default(P4), default(P5), p6, p7, p8, p9, p10, p11, p12, p13, p14).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
		{
			F(Parameter1, p2, p3, p4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Method<P2, P3, P4, P5, P6> At2(P1 p1, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), p7, p8, p9, p10, p11, p12, p13, p14).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			F(Parameter1, p2, p3, p4, p5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Method<P2, P3, P4, P5, P6, P7> At2(P1 p1, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), p8, p9, p10, p11, p12, p13, p14).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			F(Parameter1, p2, p3, p4, p5, p6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Method<P2, P3, P4, P5, P6, P7, P8> At2(P1 p1, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10, p11, p12, p13, p14).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Method<P2, P3, P4, P5, P6, P7, P8, P9> At2(P1 p1, Delegate f, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11, p12, p13, p14).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, p10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Method<P2, P3, P4, P5, P6, P7, P8, P9, P10> At2(P1 p1, Delegate f, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12, p13, p14).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, Parameter12, Parameter13, Parameter14);
		}
		public static Method<P2, P3, P4, P5, P6, P7, P8, P9, P10, P11> At2(P1 p1, Delegate f, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12, p13, p14).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, Parameter13, Parameter14);
		}
		public static Method<P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12> At2(P1 p1, Delegate f, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), p13, p14).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, Parameter14);
		}
		public static Method<P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13> At2(P1 p1, Delegate f, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), p14).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14);
		}
		public static Method<P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14> At2(P1 p1, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14)).Call2;
		}
		public static Method<P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14> AtEnd(P1 p1, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14)).Call2;
		}
		public void Call3(P3 p3)
		{
			F(Parameter1, Parameter2, p3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Method<P3> At3(P1 p1, P2 p2, Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, default(P3), p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14).Call3;
		}
		public void Call3(P3 p3, P4 p4)
		{
			F(Parameter1, Parameter2, p3, p4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Method<P3, P4> At3(P1 p1, P2 p2, Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, default(P3), default(P4), p5, p6, p7, p8, p9, p10, p11, p12, p13, p14).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5)
		{
			F(Parameter1, Parameter2, p3, p4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Method<P3, P4, P5> At3(P1 p1, P2 p2, Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, default(P3), default(P4), default(P5), p6, p7, p8, p9, p10, p11, p12, p13, p14).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5, P6 p6)
		{
			F(Parameter1, Parameter2, p3, p4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Method<P3, P4, P5, P6> At3(P1 p1, P2 p2, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), p7, p8, p9, p10, p11, p12, p13, p14).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			F(Parameter1, Parameter2, p3, p4, p5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Method<P3, P4, P5, P6, P7> At3(P1 p1, P2 p2, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), p8, p9, p10, p11, p12, p13, p14).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Method<P3, P4, P5, P6, P7, P8> At3(P1 p1, P2 p2, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10, p11, p12, p13, p14).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Method<P3, P4, P5, P6, P7, P8, P9> At3(P1 p1, P2 p2, Delegate f, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11, p12, p13, p14).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, p10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Method<P3, P4, P5, P6, P7, P8, P9, P10> At3(P1 p1, P2 p2, Delegate f, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12, p13, p14).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, p10, p11, Parameter12, Parameter13, Parameter14);
		}
		public static Method<P3, P4, P5, P6, P7, P8, P9, P10, P11> At3(P1 p1, P2 p2, Delegate f, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12, p13, p14).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, Parameter13, Parameter14);
		}
		public static Method<P3, P4, P5, P6, P7, P8, P9, P10, P11, P12> At3(P1 p1, P2 p2, Delegate f, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), p13, p14).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, Parameter14);
		}
		public static Method<P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13> At3(P1 p1, P2 p2, Delegate f, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), p14).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14);
		}
		public static Method<P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14> At3(P1 p1, P2 p2, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14)).Call3;
		}
		public static Method<P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14> AtEnd(P1 p1, P2 p2, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14)).Call3;
		}
		public void Call4(P4 p4)
		{
			F(Parameter1, Parameter2, Parameter3, p4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Method<P4> At4(P1 p1, P2 p2, P3 p3, Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, default(P4), p5, p6, p7, p8, p9, p10, p11, p12, p13, p14).Call4;
		}
		public void Call4(P4 p4, P5 p5)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Method<P4, P5> At4(P1 p1, P2 p2, P3 p3, Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, default(P4), default(P5), p6, p7, p8, p9, p10, p11, p12, p13, p14).Call4;
		}
		public void Call4(P4 p4, P5 p5, P6 p6)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Method<P4, P5, P6> At4(P1 p1, P2 p2, P3 p3, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, default(P4), default(P5), default(P6), p7, p8, p9, p10, p11, p12, p13, p14).Call4;
		}
		public void Call4(P4 p4, P5 p5, P6 p6, P7 p7)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Method<P4, P5, P6, P7> At4(P1 p1, P2 p2, P3 p3, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), p8, p9, p10, p11, p12, p13, p14).Call4;
		}
		public void Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Method<P4, P5, P6, P7, P8> At4(P1 p1, P2 p2, P3 p3, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10, p11, p12, p13, p14).Call4;
		}
		public void Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Method<P4, P5, P6, P7, P8, P9> At4(P1 p1, P2 p2, P3 p3, Delegate f, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11, p12, p13, p14).Call4;
		}
		public void Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, p10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Method<P4, P5, P6, P7, P8, P9, P10> At4(P1 p1, P2 p2, P3 p3, Delegate f, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12, p13, p14).Call4;
		}
		public void Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, p10, p11, Parameter12, Parameter13, Parameter14);
		}
		public static Method<P4, P5, P6, P7, P8, P9, P10, P11> At4(P1 p1, P2 p2, P3 p3, Delegate f, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12, p13, p14).Call4;
		}
		public void Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, p10, p11, p12, Parameter13, Parameter14);
		}
		public static Method<P4, P5, P6, P7, P8, P9, P10, P11, P12> At4(P1 p1, P2 p2, P3 p3, Delegate f, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), p13, p14).Call4;
		}
		public void Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, Parameter14);
		}
		public static Method<P4, P5, P6, P7, P8, P9, P10, P11, P12, P13> At4(P1 p1, P2 p2, P3 p3, Delegate f, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), p14).Call4;
		}
		public void Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14);
		}
		public static Method<P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14> At4(P1 p1, P2 p2, P3 p3, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14)).Call4;
		}
		public static Method<P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14> AtEnd(P1 p1, P2 p2, P3 p3, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14)).Call4;
		}
		public void Call5(P5 p5)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Method<P5> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, default(P5), p6, p7, p8, p9, p10, p11, p12, p13, p14).Call5;
		}
		public void Call5(P5 p5, P6 p6)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Method<P5, P6> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, default(P5), default(P6), p7, p8, p9, p10, p11, p12, p13, p14).Call5;
		}
		public void Call5(P5 p5, P6 p6, P7 p7)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Method<P5, P6, P7> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), p8, p9, p10, p11, p12, p13, p14).Call5;
		}
		public void Call5(P5 p5, P6 p6, P7 p7, P8 p8)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Method<P5, P6, P7, P8> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), p9, p10, p11, p12, p13, p14).Call5;
		}
		public void Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Method<P5, P6, P7, P8, P9> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11, p12, p13, p14).Call5;
		}
		public void Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, p10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Method<P5, P6, P7, P8, P9, P10> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12, p13, p14).Call5;
		}
		public void Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, p10, p11, Parameter12, Parameter13, Parameter14);
		}
		public static Method<P5, P6, P7, P8, P9, P10, P11> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12, p13, p14).Call5;
		}
		public void Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, p10, p11, p12, Parameter13, Parameter14);
		}
		public static Method<P5, P6, P7, P8, P9, P10, P11, P12> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), p13, p14).Call5;
		}
		public void Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, p10, p11, p12, p13, Parameter14);
		}
		public static Method<P5, P6, P7, P8, P9, P10, P11, P12, P13> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), p14).Call5;
		}
		public void Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14);
		}
		public static Method<P5, P6, P7, P8, P9, P10, P11, P12, P13, P14> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14)).Call5;
		}
		public static Method<P5, P6, P7, P8, P9, P10, P11, P12, P13, P14> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14)).Call5;
		}
		public void Call6(P6 p6)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Method<P6> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, default(P6), p7, p8, p9, p10, p11, p12, p13, p14).Call6;
		}
		public void Call6(P6 p6, P7 p7)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Method<P6, P7> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, default(P6), default(P7), p8, p9, p10, p11, p12, p13, p14).Call6;
		}
		public void Call6(P6 p6, P7 p7, P8 p8)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Method<P6, P7, P8> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), p9, p10, p11, p12, p13, p14).Call6;
		}
		public void Call6(P6 p6, P7 p7, P8 p8, P9 p9)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Method<P6, P7, P8, P9> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), p10, p11, p12, p13, p14).Call6;
		}
		public void Call6(P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, p10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Method<P6, P7, P8, P9, P10> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12, p13, p14).Call6;
		}
		public void Call6(P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, p10, p11, Parameter12, Parameter13, Parameter14);
		}
		public static Method<P6, P7, P8, P9, P10, P11> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12, p13, p14).Call6;
		}
		public void Call6(P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, p10, p11, p12, Parameter13, Parameter14);
		}
		public static Method<P6, P7, P8, P9, P10, P11, P12> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), p13, p14).Call6;
		}
		public void Call6(P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, p10, p11, p12, p13, Parameter14);
		}
		public static Method<P6, P7, P8, P9, P10, P11, P12, P13> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), p14).Call6;
		}
		public void Call6(P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, p10, p11, p12, p13, p14);
		}
		public static Method<P6, P7, P8, P9, P10, P11, P12, P13, P14> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14)).Call6;
		}
		public static Method<P6, P7, P8, P9, P10, P11, P12, P13, P14> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14)).Call6;
		}
		public void Call7(P7 p7)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Method<P7> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, default(P7), p8, p9, p10, p11, p12, p13, p14).Call7;
		}
		public void Call7(P7 p7, P8 p8)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Method<P7, P8> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), p9, p10, p11, p12, p13, p14).Call7;
		}
		public void Call7(P7 p7, P8 p8, P9 p9)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Method<P7, P8, P9> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), p10, p11, p12, p13, p14).Call7;
		}
		public void Call7(P7 p7, P8 p8, P9 p9, P10 p10)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, p10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Method<P7, P8, P9, P10> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10), p11, p12, p13, p14).Call7;
		}
		public void Call7(P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, p10, p11, Parameter12, Parameter13, Parameter14);
		}
		public static Method<P7, P8, P9, P10, P11> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10), default(P11), p12, p13, p14).Call7;
		}
		public void Call7(P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, p10, p11, p12, Parameter13, Parameter14);
		}
		public static Method<P7, P8, P9, P10, P11, P12> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), p13, p14).Call7;
		}
		public void Call7(P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, p10, p11, p12, p13, Parameter14);
		}
		public static Method<P7, P8, P9, P10, P11, P12, P13> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), p14).Call7;
		}
		public void Call7(P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, p10, p11, p12, p13, p14);
		}
		public static Method<P7, P8, P9, P10, P11, P12, P13, P14> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14)).Call7;
		}
		public static Method<P7, P8, P9, P10, P11, P12, P13, P14> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14)).Call7;
		}
		public void Call8(P8 p8)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Method<P8> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), p9, p10, p11, p12, p13, p14).Call8;
		}
		public void Call8(P8 p8, P9 p9)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Method<P8, P9> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), p10, p11, p12, p13, p14).Call8;
		}
		public void Call8(P8 p8, P9 p9, P10 p10)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, p10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Method<P8, P9, P10> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10), p11, p12, p13, p14).Call8;
		}
		public void Call8(P8 p8, P9 p9, P10 p10, P11 p11)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, p10, p11, Parameter12, Parameter13, Parameter14);
		}
		public static Method<P8, P9, P10, P11> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10), default(P11), p12, p13, p14).Call8;
		}
		public void Call8(P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, p10, p11, p12, Parameter13, Parameter14);
		}
		public static Method<P8, P9, P10, P11, P12> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10), default(P11), default(P12), p13, p14).Call8;
		}
		public void Call8(P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, p10, p11, p12, p13, Parameter14);
		}
		public static Method<P8, P9, P10, P11, P12, P13> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), p14).Call8;
		}
		public void Call8(P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, p10, p11, p12, p13, p14);
		}
		public static Method<P8, P9, P10, P11, P12, P13, P14> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14)).Call8;
		}
		public static Method<P8, P9, P10, P11, P12, P13, P14> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14)).Call8;
		}
		public void Call9(P9 p9)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Method<P9> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), p10, p11, p12, p13, p14).Call9;
		}
		public void Call9(P9 p9, P10 p10)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, p10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Method<P9, P10> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10), p11, p12, p13, p14).Call9;
		}
		public void Call9(P9 p9, P10 p10, P11 p11)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, p10, p11, Parameter12, Parameter13, Parameter14);
		}
		public static Method<P9, P10, P11> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10), default(P11), p12, p13, p14).Call9;
		}
		public void Call9(P9 p9, P10 p10, P11 p11, P12 p12)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, p10, p11, p12, Parameter13, Parameter14);
		}
		public static Method<P9, P10, P11, P12> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10), default(P11), default(P12), p13, p14).Call9;
		}
		public void Call9(P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, p10, p11, p12, p13, Parameter14);
		}
		public static Method<P9, P10, P11, P12, P13> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10), default(P11), default(P12), default(P13), p14).Call9;
		}
		public void Call9(P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, p10, p11, p12, p13, p14);
		}
		public static Method<P9, P10, P11, P12, P13, P14> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10), default(P11), default(P12), default(P13), default(P14)).Call9;
		}
		public static Method<P9, P10, P11, P12, P13, P14> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10), default(P11), default(P12), default(P13), default(P14)).Call9;
		}
		public void Call10(P10 p10)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, p10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Method<P10> At10(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10), p11, p12, p13, p14).Call10;
		}
		public void Call10(P10 p10, P11 p11)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, p10, p11, Parameter12, Parameter13, Parameter14);
		}
		public static Method<P10, P11> At10(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10), default(P11), p12, p13, p14).Call10;
		}
		public void Call10(P10 p10, P11 p11, P12 p12)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, p10, p11, p12, Parameter13, Parameter14);
		}
		public static Method<P10, P11, P12> At10(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10), default(P11), default(P12), p13, p14).Call10;
		}
		public void Call10(P10 p10, P11 p11, P12 p12, P13 p13)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, p10, p11, p12, p13, Parameter14);
		}
		public static Method<P10, P11, P12, P13> At10(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10), default(P11), default(P12), default(P13), p14).Call10;
		}
		public void Call10(P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, p10, p11, p12, p13, p14);
		}
		public static Method<P10, P11, P12, P13, P14> At10(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10), default(P11), default(P12), default(P13), default(P14)).Call10;
		}
		public static Method<P10, P11, P12, P13, P14> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10), default(P11), default(P12), default(P13), default(P14)).Call10;
		}
		public void Call11(P11 p11)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, p11, Parameter12, Parameter13, Parameter14);
		}
		public static Method<P11> At11(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, Delegate f, P12 p12, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, default(P11), p12, p13, p14).Call11;
		}
		public void Call11(P11 p11, P12 p12)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, p11, p12, Parameter13, Parameter14);
		}
		public static Method<P11, P12> At11(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, Delegate f, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, default(P11), default(P12), p13, p14).Call11;
		}
		public void Call11(P11 p11, P12 p12, P13 p13)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, p11, p12, p13, Parameter14);
		}
		public static Method<P11, P12, P13> At11(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, Delegate f, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, default(P11), default(P12), default(P13), p14).Call11;
		}
		public void Call11(P11 p11, P12 p12, P13 p13, P14 p14)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, p11, p12, p13, p14);
		}
		public static Method<P11, P12, P13, P14> At11(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, default(P11), default(P12), default(P13), default(P14)).Call11;
		}
		public static Method<P11, P12, P13, P14> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, default(P11), default(P12), default(P13), default(P14)).Call11;
		}
		public void Call12(P12 p12)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, p12, Parameter13, Parameter14);
		}
		public static Method<P12> At12(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, Delegate f, P13 p13, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, default(P12), p13, p14).Call12;
		}
		public void Call12(P12 p12, P13 p13)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, p12, p13, Parameter14);
		}
		public static Method<P12, P13> At12(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, Delegate f, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, default(P12), default(P13), p14).Call12;
		}
		public void Call12(P12 p12, P13 p13, P14 p14)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, p12, p13, p14);
		}
		public static Method<P12, P13, P14> At12(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, default(P12), default(P13), default(P14)).Call12;
		}
		public static Method<P12, P13, P14> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, default(P12), default(P13), default(P14)).Call12;
		}
		public void Call13(P13 p13)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, p13, Parameter14);
		}
		public static Method<P13> At13(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, Delegate f, P14 p14)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, default(P13), p14).Call13;
		}
		public void Call13(P13 p13, P14 p14)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, p13, p14);
		}
		public static Method<P13, P14> At13(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, default(P13), default(P14)).Call13;
		}
		public static Method<P13, P14> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, default(P13), default(P14)).Call13;
		}
		public void Call14(P14 p14)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, p14);
		}
		public static Method<P14> At14(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, default(P14)).Call14;
		}
		public static Method<P14> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, default(P14)).Call14;
		}
	}
	public class AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>
	{
		public readonly Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15> F;
		public P1 Parameter1;
		public P2 Parameter2;
		public P3 Parameter3;
		public P4 Parameter4;
		public P5 Parameter5;
		public P6 Parameter6;
		public P7 Parameter7;
		public P8 Parameter8;
		public P9 Parameter9;
		public P10 Parameter10;
		public P11 Parameter11;
		public P12 Parameter12;
		public P13 Parameter13;
		public P14 Parameter14;
		public P15 Parameter15;
		public AMethod(Delegate f)
		{
			F = (Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>)Delegate.CreateDelegate(typeof(Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>), f.Target, f.Method);
		}
		public AMethod(Delegate f, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			F = (Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>)Delegate.CreateDelegate(typeof(Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>), f.Target, f.Method);
			Parameter1 = p1;
			Parameter2 = p2;
			Parameter3 = p3;
			Parameter4 = p4;
			Parameter5 = p5;
			Parameter6 = p6;
			Parameter7 = p7;
			Parameter8 = p8;
			Parameter9 = p9;
			Parameter10 = p10;
			Parameter11 = p11;
			Parameter12 = p12;
			Parameter13 = p13;
			Parameter14 = p14;
			Parameter15 = p15;
		}
		public void Call()
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method From(Delegate f, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15).Call;
		}
		public void Call1(P1 p1)
		{
			F(p1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P1> At1(Delegate f, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, default(P1), p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15).Call1;
		}
		public static Method<P1> AtBegin(Delegate f, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, default(P1), p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15).Call1;
		}
		public void Call1(P1 p1, P2 p2)
		{
			F(p1, p2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P1, P2> At1(Delegate f, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, default(P1), default(P2), p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15).Call1;
		}
		public static Method<P1, P2> AtBegin(Delegate f, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, default(P1), default(P2), p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3)
		{
			F(p1, p2, p3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P1, P2, P3> At1(Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, default(P1), default(P2), default(P3), p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15).Call1;
		}
		public static Method<P1, P2, P3> AtBegin(Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, default(P1), default(P2), default(P3), p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4)
		{
			F(p1, p2, p3, p4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P1, P2, P3, P4> At1(Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, default(P1), default(P2), default(P3), default(P4), p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15).Call1;
		}
		public static Method<P1, P2, P3, P4> AtBegin(Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, default(P1), default(P2), default(P3), default(P4), p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
		{
			F(p1, p2, p3, p4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P1, P2, P3, P4, P5> At1(Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, default(P1), default(P2), default(P3), default(P4), default(P5), p6, p7, p8, p9, p10, p11, p12, p13, p14, p15).Call1;
		}
		public static Method<P1, P2, P3, P4, P5> AtBegin(Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, default(P1), default(P2), default(P3), default(P4), default(P5), p6, p7, p8, p9, p10, p11, p12, p13, p14, p15).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
		{
			F(p1, p2, p3, p4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P1, P2, P3, P4, P5, P6> At1(Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), p7, p8, p9, p10, p11, p12, p13, p14, p15).Call1;
		}
		public static Method<P1, P2, P3, P4, P5, P6> AtBegin(Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), p7, p8, p9, p10, p11, p12, p13, p14, p15).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			F(p1, p2, p3, p4, p5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7> At1(Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), p8, p9, p10, p11, p12, p13, p14, p15).Call1;
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7> AtBegin(Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), p8, p9, p10, p11, p12, p13, p14, p15).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			F(p1, p2, p3, p4, p5, p6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8> At1(Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10, p11, p12, p13, p14, p15).Call1;
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8> AtBegin(Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10, p11, p12, p13, p14, p15).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			F(p1, p2, p3, p4, p5, p6, p7, p8, p9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8, P9> At1(Delegate f, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11, p12, p13, p14, p15).Call1;
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8, P9> AtBegin(Delegate f, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11, p12, p13, p14, p15).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			F(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10> At1(Delegate f, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12, p13, p14, p15).Call1;
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10> AtBegin(Delegate f, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12, p13, p14, p15).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			F(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11> At1(Delegate f, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12, p13, p14, p15).Call1;
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11> AtBegin(Delegate f, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12, p13, p14, p15).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			F(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12> At1(Delegate f, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), p13, p14, p15).Call1;
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12> AtBegin(Delegate f, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), p13, p14, p15).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			F(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, Parameter14, Parameter15);
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13> At1(Delegate f, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), p14, p15).Call1;
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13> AtBegin(Delegate f, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), p14, p15).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			F(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, Parameter15);
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14> At1(Delegate f, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), p15).Call1;
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14> AtBegin(Delegate f, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), p15).Call1;
		}
		public void Call2(P2 p2)
		{
			F(Parameter1, p2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P2> At2(P1 p1, Delegate f, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, default(P2), p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15).Call2;
		}
		public void Call2(P2 p2, P3 p3)
		{
			F(Parameter1, p2, p3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P2, P3> At2(P1 p1, Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, default(P2), default(P3), p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4)
		{
			F(Parameter1, p2, p3, p4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P2, P3, P4> At2(P1 p1, Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, default(P2), default(P3), default(P4), p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5)
		{
			F(Parameter1, p2, p3, p4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P2, P3, P4, P5> At2(P1 p1, Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, default(P2), default(P3), default(P4), default(P5), p6, p7, p8, p9, p10, p11, p12, p13, p14, p15).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
		{
			F(Parameter1, p2, p3, p4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P2, P3, P4, P5, P6> At2(P1 p1, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), p7, p8, p9, p10, p11, p12, p13, p14, p15).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			F(Parameter1, p2, p3, p4, p5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P2, P3, P4, P5, P6, P7> At2(P1 p1, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), p8, p9, p10, p11, p12, p13, p14, p15).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			F(Parameter1, p2, p3, p4, p5, p6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P2, P3, P4, P5, P6, P7, P8> At2(P1 p1, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10, p11, p12, p13, p14, p15).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P2, P3, P4, P5, P6, P7, P8, P9> At2(P1 p1, Delegate f, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11, p12, p13, p14, p15).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, p10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P2, P3, P4, P5, P6, P7, P8, P9, P10> At2(P1 p1, Delegate f, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12, p13, p14, p15).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P2, P3, P4, P5, P6, P7, P8, P9, P10, P11> At2(P1 p1, Delegate f, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12, p13, p14, p15).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12> At2(P1 p1, Delegate f, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), p13, p14, p15).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, Parameter14, Parameter15);
		}
		public static Method<P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13> At2(P1 p1, Delegate f, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), p14, p15).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, Parameter15);
		}
		public static Method<P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14> At2(P1 p1, Delegate f, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), p15).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15);
		}
		public static Method<P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15> At2(P1 p1, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15)).Call2;
		}
		public static Method<P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15> AtEnd(P1 p1, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15)).Call2;
		}
		public void Call3(P3 p3)
		{
			F(Parameter1, Parameter2, p3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P3> At3(P1 p1, P2 p2, Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, default(P3), p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15).Call3;
		}
		public void Call3(P3 p3, P4 p4)
		{
			F(Parameter1, Parameter2, p3, p4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P3, P4> At3(P1 p1, P2 p2, Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, default(P3), default(P4), p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5)
		{
			F(Parameter1, Parameter2, p3, p4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P3, P4, P5> At3(P1 p1, P2 p2, Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, default(P3), default(P4), default(P5), p6, p7, p8, p9, p10, p11, p12, p13, p14, p15).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5, P6 p6)
		{
			F(Parameter1, Parameter2, p3, p4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P3, P4, P5, P6> At3(P1 p1, P2 p2, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), p7, p8, p9, p10, p11, p12, p13, p14, p15).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			F(Parameter1, Parameter2, p3, p4, p5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P3, P4, P5, P6, P7> At3(P1 p1, P2 p2, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), p8, p9, p10, p11, p12, p13, p14, p15).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P3, P4, P5, P6, P7, P8> At3(P1 p1, P2 p2, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10, p11, p12, p13, p14, p15).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P3, P4, P5, P6, P7, P8, P9> At3(P1 p1, P2 p2, Delegate f, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11, p12, p13, p14, p15).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, p10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P3, P4, P5, P6, P7, P8, P9, P10> At3(P1 p1, P2 p2, Delegate f, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12, p13, p14, p15).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, p10, p11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P3, P4, P5, P6, P7, P8, P9, P10, P11> At3(P1 p1, P2 p2, Delegate f, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12, p13, p14, p15).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P3, P4, P5, P6, P7, P8, P9, P10, P11, P12> At3(P1 p1, P2 p2, Delegate f, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), p13, p14, p15).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, Parameter14, Parameter15);
		}
		public static Method<P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13> At3(P1 p1, P2 p2, Delegate f, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), p14, p15).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, Parameter15);
		}
		public static Method<P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14> At3(P1 p1, P2 p2, Delegate f, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), p15).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15);
		}
		public static Method<P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15> At3(P1 p1, P2 p2, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15)).Call3;
		}
		public static Method<P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15> AtEnd(P1 p1, P2 p2, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15)).Call3;
		}
		public void Call4(P4 p4)
		{
			F(Parameter1, Parameter2, Parameter3, p4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P4> At4(P1 p1, P2 p2, P3 p3, Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, default(P4), p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15).Call4;
		}
		public void Call4(P4 p4, P5 p5)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P4, P5> At4(P1 p1, P2 p2, P3 p3, Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, default(P4), default(P5), p6, p7, p8, p9, p10, p11, p12, p13, p14, p15).Call4;
		}
		public void Call4(P4 p4, P5 p5, P6 p6)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P4, P5, P6> At4(P1 p1, P2 p2, P3 p3, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, default(P4), default(P5), default(P6), p7, p8, p9, p10, p11, p12, p13, p14, p15).Call4;
		}
		public void Call4(P4 p4, P5 p5, P6 p6, P7 p7)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P4, P5, P6, P7> At4(P1 p1, P2 p2, P3 p3, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), p8, p9, p10, p11, p12, p13, p14, p15).Call4;
		}
		public void Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P4, P5, P6, P7, P8> At4(P1 p1, P2 p2, P3 p3, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10, p11, p12, p13, p14, p15).Call4;
		}
		public void Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P4, P5, P6, P7, P8, P9> At4(P1 p1, P2 p2, P3 p3, Delegate f, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11, p12, p13, p14, p15).Call4;
		}
		public void Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, p10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P4, P5, P6, P7, P8, P9, P10> At4(P1 p1, P2 p2, P3 p3, Delegate f, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12, p13, p14, p15).Call4;
		}
		public void Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, p10, p11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P4, P5, P6, P7, P8, P9, P10, P11> At4(P1 p1, P2 p2, P3 p3, Delegate f, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12, p13, p14, p15).Call4;
		}
		public void Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, p10, p11, p12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P4, P5, P6, P7, P8, P9, P10, P11, P12> At4(P1 p1, P2 p2, P3 p3, Delegate f, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), p13, p14, p15).Call4;
		}
		public void Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, Parameter14, Parameter15);
		}
		public static Method<P4, P5, P6, P7, P8, P9, P10, P11, P12, P13> At4(P1 p1, P2 p2, P3 p3, Delegate f, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), p14, p15).Call4;
		}
		public void Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, Parameter15);
		}
		public static Method<P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14> At4(P1 p1, P2 p2, P3 p3, Delegate f, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), p15).Call4;
		}
		public void Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15);
		}
		public static Method<P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15> At4(P1 p1, P2 p2, P3 p3, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15)).Call4;
		}
		public static Method<P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15> AtEnd(P1 p1, P2 p2, P3 p3, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15)).Call4;
		}
		public void Call5(P5 p5)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P5> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, default(P5), p6, p7, p8, p9, p10, p11, p12, p13, p14, p15).Call5;
		}
		public void Call5(P5 p5, P6 p6)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P5, P6> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, default(P5), default(P6), p7, p8, p9, p10, p11, p12, p13, p14, p15).Call5;
		}
		public void Call5(P5 p5, P6 p6, P7 p7)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P5, P6, P7> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), p8, p9, p10, p11, p12, p13, p14, p15).Call5;
		}
		public void Call5(P5 p5, P6 p6, P7 p7, P8 p8)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P5, P6, P7, P8> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), p9, p10, p11, p12, p13, p14, p15).Call5;
		}
		public void Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P5, P6, P7, P8, P9> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11, p12, p13, p14, p15).Call5;
		}
		public void Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, p10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P5, P6, P7, P8, P9, P10> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12, p13, p14, p15).Call5;
		}
		public void Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, p10, p11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P5, P6, P7, P8, P9, P10, P11> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12, p13, p14, p15).Call5;
		}
		public void Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, p10, p11, p12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P5, P6, P7, P8, P9, P10, P11, P12> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), p13, p14, p15).Call5;
		}
		public void Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, p10, p11, p12, p13, Parameter14, Parameter15);
		}
		public static Method<P5, P6, P7, P8, P9, P10, P11, P12, P13> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), p14, p15).Call5;
		}
		public void Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, Parameter15);
		}
		public static Method<P5, P6, P7, P8, P9, P10, P11, P12, P13, P14> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), p15).Call5;
		}
		public void Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15);
		}
		public static Method<P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15)).Call5;
		}
		public static Method<P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15)).Call5;
		}
		public void Call6(P6 p6)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P6> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, default(P6), p7, p8, p9, p10, p11, p12, p13, p14, p15).Call6;
		}
		public void Call6(P6 p6, P7 p7)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P6, P7> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, default(P6), default(P7), p8, p9, p10, p11, p12, p13, p14, p15).Call6;
		}
		public void Call6(P6 p6, P7 p7, P8 p8)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P6, P7, P8> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), p9, p10, p11, p12, p13, p14, p15).Call6;
		}
		public void Call6(P6 p6, P7 p7, P8 p8, P9 p9)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P6, P7, P8, P9> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), p10, p11, p12, p13, p14, p15).Call6;
		}
		public void Call6(P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, p10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P6, P7, P8, P9, P10> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12, p13, p14, p15).Call6;
		}
		public void Call6(P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, p10, p11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P6, P7, P8, P9, P10, P11> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12, p13, p14, p15).Call6;
		}
		public void Call6(P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, p10, p11, p12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P6, P7, P8, P9, P10, P11, P12> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), p13, p14, p15).Call6;
		}
		public void Call6(P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, p10, p11, p12, p13, Parameter14, Parameter15);
		}
		public static Method<P6, P7, P8, P9, P10, P11, P12, P13> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), p14, p15).Call6;
		}
		public void Call6(P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, p10, p11, p12, p13, p14, Parameter15);
		}
		public static Method<P6, P7, P8, P9, P10, P11, P12, P13, P14> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), p15).Call6;
		}
		public void Call6(P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15);
		}
		public static Method<P6, P7, P8, P9, P10, P11, P12, P13, P14, P15> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15)).Call6;
		}
		public static Method<P6, P7, P8, P9, P10, P11, P12, P13, P14, P15> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15)).Call6;
		}
		public void Call7(P7 p7)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P7> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, default(P7), p8, p9, p10, p11, p12, p13, p14, p15).Call7;
		}
		public void Call7(P7 p7, P8 p8)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P7, P8> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), p9, p10, p11, p12, p13, p14, p15).Call7;
		}
		public void Call7(P7 p7, P8 p8, P9 p9)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P7, P8, P9> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), p10, p11, p12, p13, p14, p15).Call7;
		}
		public void Call7(P7 p7, P8 p8, P9 p9, P10 p10)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, p10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P7, P8, P9, P10> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10), p11, p12, p13, p14, p15).Call7;
		}
		public void Call7(P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, p10, p11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P7, P8, P9, P10, P11> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10), default(P11), p12, p13, p14, p15).Call7;
		}
		public void Call7(P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, p10, p11, p12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P7, P8, P9, P10, P11, P12> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), p13, p14, p15).Call7;
		}
		public void Call7(P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, p10, p11, p12, p13, Parameter14, Parameter15);
		}
		public static Method<P7, P8, P9, P10, P11, P12, P13> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), p14, p15).Call7;
		}
		public void Call7(P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, p10, p11, p12, p13, p14, Parameter15);
		}
		public static Method<P7, P8, P9, P10, P11, P12, P13, P14> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), p15).Call7;
		}
		public void Call7(P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, p10, p11, p12, p13, p14, p15);
		}
		public static Method<P7, P8, P9, P10, P11, P12, P13, P14, P15> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15)).Call7;
		}
		public static Method<P7, P8, P9, P10, P11, P12, P13, P14, P15> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15)).Call7;
		}
		public void Call8(P8 p8)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P8> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), p9, p10, p11, p12, p13, p14, p15).Call8;
		}
		public void Call8(P8 p8, P9 p9)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P8, P9> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), p10, p11, p12, p13, p14, p15).Call8;
		}
		public void Call8(P8 p8, P9 p9, P10 p10)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, p10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P8, P9, P10> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10), p11, p12, p13, p14, p15).Call8;
		}
		public void Call8(P8 p8, P9 p9, P10 p10, P11 p11)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, p10, p11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P8, P9, P10, P11> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10), default(P11), p12, p13, p14, p15).Call8;
		}
		public void Call8(P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, p10, p11, p12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P8, P9, P10, P11, P12> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10), default(P11), default(P12), p13, p14, p15).Call8;
		}
		public void Call8(P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, p10, p11, p12, p13, Parameter14, Parameter15);
		}
		public static Method<P8, P9, P10, P11, P12, P13> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), p14, p15).Call8;
		}
		public void Call8(P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, p10, p11, p12, p13, p14, Parameter15);
		}
		public static Method<P8, P9, P10, P11, P12, P13, P14> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), p15).Call8;
		}
		public void Call8(P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, p10, p11, p12, p13, p14, p15);
		}
		public static Method<P8, P9, P10, P11, P12, P13, P14, P15> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15)).Call8;
		}
		public static Method<P8, P9, P10, P11, P12, P13, P14, P15> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15)).Call8;
		}
		public void Call9(P9 p9)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P9> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), p10, p11, p12, p13, p14, p15).Call9;
		}
		public void Call9(P9 p9, P10 p10)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, p10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P9, P10> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10), p11, p12, p13, p14, p15).Call9;
		}
		public void Call9(P9 p9, P10 p10, P11 p11)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, p10, p11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P9, P10, P11> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10), default(P11), p12, p13, p14, p15).Call9;
		}
		public void Call9(P9 p9, P10 p10, P11 p11, P12 p12)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, p10, p11, p12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P9, P10, P11, P12> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10), default(P11), default(P12), p13, p14, p15).Call9;
		}
		public void Call9(P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, p10, p11, p12, p13, Parameter14, Parameter15);
		}
		public static Method<P9, P10, P11, P12, P13> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10), default(P11), default(P12), default(P13), p14, p15).Call9;
		}
		public void Call9(P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, p10, p11, p12, p13, p14, Parameter15);
		}
		public static Method<P9, P10, P11, P12, P13, P14> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), p15).Call9;
		}
		public void Call9(P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, p10, p11, p12, p13, p14, p15);
		}
		public static Method<P9, P10, P11, P12, P13, P14, P15> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15)).Call9;
		}
		public static Method<P9, P10, P11, P12, P13, P14, P15> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15)).Call9;
		}
		public void Call10(P10 p10)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, p10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P10> At10(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10), p11, p12, p13, p14, p15).Call10;
		}
		public void Call10(P10 p10, P11 p11)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, p10, p11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P10, P11> At10(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10), default(P11), p12, p13, p14, p15).Call10;
		}
		public void Call10(P10 p10, P11 p11, P12 p12)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, p10, p11, p12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P10, P11, P12> At10(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10), default(P11), default(P12), p13, p14, p15).Call10;
		}
		public void Call10(P10 p10, P11 p11, P12 p12, P13 p13)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, p10, p11, p12, p13, Parameter14, Parameter15);
		}
		public static Method<P10, P11, P12, P13> At10(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10), default(P11), default(P12), default(P13), p14, p15).Call10;
		}
		public void Call10(P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, p10, p11, p12, p13, p14, Parameter15);
		}
		public static Method<P10, P11, P12, P13, P14> At10(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10), default(P11), default(P12), default(P13), default(P14), p15).Call10;
		}
		public void Call10(P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, p10, p11, p12, p13, p14, p15);
		}
		public static Method<P10, P11, P12, P13, P14, P15> At10(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10), default(P11), default(P12), default(P13), default(P14), default(P15)).Call10;
		}
		public static Method<P10, P11, P12, P13, P14, P15> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10), default(P11), default(P12), default(P13), default(P14), default(P15)).Call10;
		}
		public void Call11(P11 p11)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, p11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P11> At11(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, Delegate f, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, default(P11), p12, p13, p14, p15).Call11;
		}
		public void Call11(P11 p11, P12 p12)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, p11, p12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P11, P12> At11(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, Delegate f, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, default(P11), default(P12), p13, p14, p15).Call11;
		}
		public void Call11(P11 p11, P12 p12, P13 p13)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, p11, p12, p13, Parameter14, Parameter15);
		}
		public static Method<P11, P12, P13> At11(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, Delegate f, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, default(P11), default(P12), default(P13), p14, p15).Call11;
		}
		public void Call11(P11 p11, P12 p12, P13 p13, P14 p14)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, p11, p12, p13, p14, Parameter15);
		}
		public static Method<P11, P12, P13, P14> At11(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, Delegate f, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, default(P11), default(P12), default(P13), default(P14), p15).Call11;
		}
		public void Call11(P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, p11, p12, p13, p14, p15);
		}
		public static Method<P11, P12, P13, P14, P15> At11(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, default(P11), default(P12), default(P13), default(P14), default(P15)).Call11;
		}
		public static Method<P11, P12, P13, P14, P15> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, default(P11), default(P12), default(P13), default(P14), default(P15)).Call11;
		}
		public void Call12(P12 p12)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, p12, Parameter13, Parameter14, Parameter15);
		}
		public static Method<P12> At12(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, Delegate f, P13 p13, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, default(P12), p13, p14, p15).Call12;
		}
		public void Call12(P12 p12, P13 p13)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, p12, p13, Parameter14, Parameter15);
		}
		public static Method<P12, P13> At12(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, Delegate f, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, default(P12), default(P13), p14, p15).Call12;
		}
		public void Call12(P12 p12, P13 p13, P14 p14)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, p12, p13, p14, Parameter15);
		}
		public static Method<P12, P13, P14> At12(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, Delegate f, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, default(P12), default(P13), default(P14), p15).Call12;
		}
		public void Call12(P12 p12, P13 p13, P14 p14, P15 p15)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, p12, p13, p14, p15);
		}
		public static Method<P12, P13, P14, P15> At12(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, default(P12), default(P13), default(P14), default(P15)).Call12;
		}
		public static Method<P12, P13, P14, P15> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, default(P12), default(P13), default(P14), default(P15)).Call12;
		}
		public void Call13(P13 p13)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, p13, Parameter14, Parameter15);
		}
		public static Method<P13> At13(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, Delegate f, P14 p14, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, default(P13), p14, p15).Call13;
		}
		public void Call13(P13 p13, P14 p14)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, p13, p14, Parameter15);
		}
		public static Method<P13, P14> At13(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, Delegate f, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, default(P13), default(P14), p15).Call13;
		}
		public void Call13(P13 p13, P14 p14, P15 p15)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, p13, p14, p15);
		}
		public static Method<P13, P14, P15> At13(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, default(P13), default(P14), default(P15)).Call13;
		}
		public static Method<P13, P14, P15> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, default(P13), default(P14), default(P15)).Call13;
		}
		public void Call14(P14 p14)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, p14, Parameter15);
		}
		public static Method<P14> At14(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, Delegate f, P15 p15)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, default(P14), p15).Call14;
		}
		public void Call14(P14 p14, P15 p15)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, p14, p15);
		}
		public static Method<P14, P15> At14(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, default(P14), default(P15)).Call14;
		}
		public static Method<P14, P15> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, default(P14), default(P15)).Call14;
		}
		public void Call15(P15 p15)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, p15);
		}
		public static Method<P15> At15(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, default(P15)).Call15;
		}
		public static Method<P15> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, default(P15)).Call15;
		}
	}
	public class AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>
	{
		public readonly Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16> F;
		public P1 Parameter1;
		public P2 Parameter2;
		public P3 Parameter3;
		public P4 Parameter4;
		public P5 Parameter5;
		public P6 Parameter6;
		public P7 Parameter7;
		public P8 Parameter8;
		public P9 Parameter9;
		public P10 Parameter10;
		public P11 Parameter11;
		public P12 Parameter12;
		public P13 Parameter13;
		public P14 Parameter14;
		public P15 Parameter15;
		public P16 Parameter16;
		public AMethod(Delegate f)
		{
			F = (Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>)Delegate.CreateDelegate(typeof(Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>), f.Target, f.Method);
		}
		public AMethod(Delegate f, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			F = (Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>)Delegate.CreateDelegate(typeof(Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>), f.Target, f.Method);
			Parameter1 = p1;
			Parameter2 = p2;
			Parameter3 = p3;
			Parameter4 = p4;
			Parameter5 = p5;
			Parameter6 = p6;
			Parameter7 = p7;
			Parameter8 = p8;
			Parameter9 = p9;
			Parameter10 = p10;
			Parameter11 = p11;
			Parameter12 = p12;
			Parameter13 = p13;
			Parameter14 = p14;
			Parameter15 = p15;
			Parameter16 = p16;
		}
		public void Call()
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method From(Delegate f, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16).Call;
		}
		public void Call1(P1 p1)
		{
			F(p1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P1> At1(Delegate f, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, default(P1), p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16).Call1;
		}
		public static Method<P1> AtBegin(Delegate f, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, default(P1), p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16).Call1;
		}
		public void Call1(P1 p1, P2 p2)
		{
			F(p1, p2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P1, P2> At1(Delegate f, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, default(P1), default(P2), p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16).Call1;
		}
		public static Method<P1, P2> AtBegin(Delegate f, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, default(P1), default(P2), p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3)
		{
			F(p1, p2, p3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P1, P2, P3> At1(Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, default(P1), default(P2), default(P3), p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16).Call1;
		}
		public static Method<P1, P2, P3> AtBegin(Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, default(P1), default(P2), default(P3), p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4)
		{
			F(p1, p2, p3, p4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P1, P2, P3, P4> At1(Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, default(P1), default(P2), default(P3), default(P4), p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16).Call1;
		}
		public static Method<P1, P2, P3, P4> AtBegin(Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, default(P1), default(P2), default(P3), default(P4), p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
		{
			F(p1, p2, p3, p4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P1, P2, P3, P4, P5> At1(Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, default(P1), default(P2), default(P3), default(P4), default(P5), p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16).Call1;
		}
		public static Method<P1, P2, P3, P4, P5> AtBegin(Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, default(P1), default(P2), default(P3), default(P4), default(P5), p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
		{
			F(p1, p2, p3, p4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P1, P2, P3, P4, P5, P6> At1(Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), p7, p8, p9, p10, p11, p12, p13, p14, p15, p16).Call1;
		}
		public static Method<P1, P2, P3, P4, P5, P6> AtBegin(Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), p7, p8, p9, p10, p11, p12, p13, p14, p15, p16).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			F(p1, p2, p3, p4, p5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7> At1(Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), p8, p9, p10, p11, p12, p13, p14, p15, p16).Call1;
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7> AtBegin(Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), p8, p9, p10, p11, p12, p13, p14, p15, p16).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			F(p1, p2, p3, p4, p5, p6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8> At1(Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10, p11, p12, p13, p14, p15, p16).Call1;
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8> AtBegin(Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10, p11, p12, p13, p14, p15, p16).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			F(p1, p2, p3, p4, p5, p6, p7, p8, p9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8, P9> At1(Delegate f, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11, p12, p13, p14, p15, p16).Call1;
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8, P9> AtBegin(Delegate f, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11, p12, p13, p14, p15, p16).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			F(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10> At1(Delegate f, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12, p13, p14, p15, p16).Call1;
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10> AtBegin(Delegate f, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12, p13, p14, p15, p16).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			F(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11> At1(Delegate f, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12, p13, p14, p15, p16).Call1;
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11> AtBegin(Delegate f, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12, p13, p14, p15, p16).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			F(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12> At1(Delegate f, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), p13, p14, p15, p16).Call1;
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12> AtBegin(Delegate f, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), p13, p14, p15, p16).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			F(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13> At1(Delegate f, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), p14, p15, p16).Call1;
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13> AtBegin(Delegate f, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), p14, p15, p16).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			F(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, Parameter15, Parameter16);
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14> At1(Delegate f, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), p15, p16).Call1;
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14> AtBegin(Delegate f, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), p15, p16).Call1;
		}
		public void Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			F(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, Parameter16);
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15> At1(Delegate f, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15), p16).Call1;
		}
		public static Method<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15> AtBegin(Delegate f, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15), p16).Call1;
		}
		public void Call2(P2 p2)
		{
			F(Parameter1, p2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P2> At2(P1 p1, Delegate f, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, default(P2), p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16).Call2;
		}
		public void Call2(P2 p2, P3 p3)
		{
			F(Parameter1, p2, p3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P2, P3> At2(P1 p1, Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, default(P2), default(P3), p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4)
		{
			F(Parameter1, p2, p3, p4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P2, P3, P4> At2(P1 p1, Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, default(P2), default(P3), default(P4), p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5)
		{
			F(Parameter1, p2, p3, p4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P2, P3, P4, P5> At2(P1 p1, Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, default(P2), default(P3), default(P4), default(P5), p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
		{
			F(Parameter1, p2, p3, p4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P2, P3, P4, P5, P6> At2(P1 p1, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), p7, p8, p9, p10, p11, p12, p13, p14, p15, p16).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			F(Parameter1, p2, p3, p4, p5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P2, P3, P4, P5, P6, P7> At2(P1 p1, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), p8, p9, p10, p11, p12, p13, p14, p15, p16).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			F(Parameter1, p2, p3, p4, p5, p6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P2, P3, P4, P5, P6, P7, P8> At2(P1 p1, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10, p11, p12, p13, p14, p15, p16).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P2, P3, P4, P5, P6, P7, P8, P9> At2(P1 p1, Delegate f, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11, p12, p13, p14, p15, p16).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, p10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P2, P3, P4, P5, P6, P7, P8, P9, P10> At2(P1 p1, Delegate f, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12, p13, p14, p15, p16).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P2, P3, P4, P5, P6, P7, P8, P9, P10, P11> At2(P1 p1, Delegate f, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12, p13, p14, p15, p16).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12> At2(P1 p1, Delegate f, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), p13, p14, p15, p16).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13> At2(P1 p1, Delegate f, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), p14, p15, p16).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, Parameter15, Parameter16);
		}
		public static Method<P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14> At2(P1 p1, Delegate f, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), p15, p16).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, Parameter16);
		}
		public static Method<P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15> At2(P1 p1, Delegate f, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15), p16).Call2;
		}
		public void Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16);
		}
		public static Method<P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16> At2(P1 p1, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15), default(P16)).Call2;
		}
		public static Method<P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16> AtEnd(P1 p1, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15), default(P16)).Call2;
		}
		public void Call3(P3 p3)
		{
			F(Parameter1, Parameter2, p3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P3> At3(P1 p1, P2 p2, Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, default(P3), p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16).Call3;
		}
		public void Call3(P3 p3, P4 p4)
		{
			F(Parameter1, Parameter2, p3, p4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P3, P4> At3(P1 p1, P2 p2, Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, default(P3), default(P4), p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5)
		{
			F(Parameter1, Parameter2, p3, p4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P3, P4, P5> At3(P1 p1, P2 p2, Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, default(P3), default(P4), default(P5), p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5, P6 p6)
		{
			F(Parameter1, Parameter2, p3, p4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P3, P4, P5, P6> At3(P1 p1, P2 p2, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), p7, p8, p9, p10, p11, p12, p13, p14, p15, p16).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			F(Parameter1, Parameter2, p3, p4, p5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P3, P4, P5, P6, P7> At3(P1 p1, P2 p2, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), p8, p9, p10, p11, p12, p13, p14, p15, p16).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P3, P4, P5, P6, P7, P8> At3(P1 p1, P2 p2, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10, p11, p12, p13, p14, p15, p16).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P3, P4, P5, P6, P7, P8, P9> At3(P1 p1, P2 p2, Delegate f, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11, p12, p13, p14, p15, p16).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, p10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P3, P4, P5, P6, P7, P8, P9, P10> At3(P1 p1, P2 p2, Delegate f, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12, p13, p14, p15, p16).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, p10, p11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P3, P4, P5, P6, P7, P8, P9, P10, P11> At3(P1 p1, P2 p2, Delegate f, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12, p13, p14, p15, p16).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P3, P4, P5, P6, P7, P8, P9, P10, P11, P12> At3(P1 p1, P2 p2, Delegate f, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), p13, p14, p15, p16).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13> At3(P1 p1, P2 p2, Delegate f, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), p14, p15, p16).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, Parameter15, Parameter16);
		}
		public static Method<P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14> At3(P1 p1, P2 p2, Delegate f, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), p15, p16).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, Parameter16);
		}
		public static Method<P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15> At3(P1 p1, P2 p2, Delegate f, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15), p16).Call3;
		}
		public void Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16);
		}
		public static Method<P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16> At3(P1 p1, P2 p2, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15), default(P16)).Call3;
		}
		public static Method<P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16> AtEnd(P1 p1, P2 p2, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15), default(P16)).Call3;
		}
		public void Call4(P4 p4)
		{
			F(Parameter1, Parameter2, Parameter3, p4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P4> At4(P1 p1, P2 p2, P3 p3, Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, default(P4), p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16).Call4;
		}
		public void Call4(P4 p4, P5 p5)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P4, P5> At4(P1 p1, P2 p2, P3 p3, Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, default(P4), default(P5), p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16).Call4;
		}
		public void Call4(P4 p4, P5 p5, P6 p6)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P4, P5, P6> At4(P1 p1, P2 p2, P3 p3, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, default(P4), default(P5), default(P6), p7, p8, p9, p10, p11, p12, p13, p14, p15, p16).Call4;
		}
		public void Call4(P4 p4, P5 p5, P6 p6, P7 p7)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P4, P5, P6, P7> At4(P1 p1, P2 p2, P3 p3, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), p8, p9, p10, p11, p12, p13, p14, p15, p16).Call4;
		}
		public void Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P4, P5, P6, P7, P8> At4(P1 p1, P2 p2, P3 p3, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10, p11, p12, p13, p14, p15, p16).Call4;
		}
		public void Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P4, P5, P6, P7, P8, P9> At4(P1 p1, P2 p2, P3 p3, Delegate f, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11, p12, p13, p14, p15, p16).Call4;
		}
		public void Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, p10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P4, P5, P6, P7, P8, P9, P10> At4(P1 p1, P2 p2, P3 p3, Delegate f, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12, p13, p14, p15, p16).Call4;
		}
		public void Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, p10, p11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P4, P5, P6, P7, P8, P9, P10, P11> At4(P1 p1, P2 p2, P3 p3, Delegate f, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12, p13, p14, p15, p16).Call4;
		}
		public void Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, p10, p11, p12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P4, P5, P6, P7, P8, P9, P10, P11, P12> At4(P1 p1, P2 p2, P3 p3, Delegate f, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), p13, p14, p15, p16).Call4;
		}
		public void Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P4, P5, P6, P7, P8, P9, P10, P11, P12, P13> At4(P1 p1, P2 p2, P3 p3, Delegate f, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), p14, p15, p16).Call4;
		}
		public void Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, Parameter15, Parameter16);
		}
		public static Method<P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14> At4(P1 p1, P2 p2, P3 p3, Delegate f, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), p15, p16).Call4;
		}
		public void Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, Parameter16);
		}
		public static Method<P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15> At4(P1 p1, P2 p2, P3 p3, Delegate f, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15), p16).Call4;
		}
		public void Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16);
		}
		public static Method<P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16> At4(P1 p1, P2 p2, P3 p3, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15), default(P16)).Call4;
		}
		public static Method<P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16> AtEnd(P1 p1, P2 p2, P3 p3, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15), default(P16)).Call4;
		}
		public void Call5(P5 p5)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P5> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, default(P5), p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16).Call5;
		}
		public void Call5(P5 p5, P6 p6)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P5, P6> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, default(P5), default(P6), p7, p8, p9, p10, p11, p12, p13, p14, p15, p16).Call5;
		}
		public void Call5(P5 p5, P6 p6, P7 p7)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P5, P6, P7> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), p8, p9, p10, p11, p12, p13, p14, p15, p16).Call5;
		}
		public void Call5(P5 p5, P6 p6, P7 p7, P8 p8)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P5, P6, P7, P8> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), p9, p10, p11, p12, p13, p14, p15, p16).Call5;
		}
		public void Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P5, P6, P7, P8, P9> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11, p12, p13, p14, p15, p16).Call5;
		}
		public void Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, p10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P5, P6, P7, P8, P9, P10> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12, p13, p14, p15, p16).Call5;
		}
		public void Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, p10, p11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P5, P6, P7, P8, P9, P10, P11> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12, p13, p14, p15, p16).Call5;
		}
		public void Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, p10, p11, p12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P5, P6, P7, P8, P9, P10, P11, P12> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), p13, p14, p15, p16).Call5;
		}
		public void Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, p10, p11, p12, p13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P5, P6, P7, P8, P9, P10, P11, P12, P13> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), p14, p15, p16).Call5;
		}
		public void Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, Parameter15, Parameter16);
		}
		public static Method<P5, P6, P7, P8, P9, P10, P11, P12, P13, P14> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), p15, p16).Call5;
		}
		public void Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, Parameter16);
		}
		public static Method<P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15), p16).Call5;
		}
		public void Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16);
		}
		public static Method<P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15), default(P16)).Call5;
		}
		public static Method<P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15), default(P16)).Call5;
		}
		public void Call6(P6 p6)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P6> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, default(P6), p7, p8, p9, p10, p11, p12, p13, p14, p15, p16).Call6;
		}
		public void Call6(P6 p6, P7 p7)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P6, P7> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, default(P6), default(P7), p8, p9, p10, p11, p12, p13, p14, p15, p16).Call6;
		}
		public void Call6(P6 p6, P7 p7, P8 p8)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P6, P7, P8> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), p9, p10, p11, p12, p13, p14, p15, p16).Call6;
		}
		public void Call6(P6 p6, P7 p7, P8 p8, P9 p9)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P6, P7, P8, P9> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), p10, p11, p12, p13, p14, p15, p16).Call6;
		}
		public void Call6(P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, p10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P6, P7, P8, P9, P10> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12, p13, p14, p15, p16).Call6;
		}
		public void Call6(P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, p10, p11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P6, P7, P8, P9, P10, P11> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12, p13, p14, p15, p16).Call6;
		}
		public void Call6(P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, p10, p11, p12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P6, P7, P8, P9, P10, P11, P12> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), p13, p14, p15, p16).Call6;
		}
		public void Call6(P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, p10, p11, p12, p13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P6, P7, P8, P9, P10, P11, P12, P13> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), p14, p15, p16).Call6;
		}
		public void Call6(P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, p10, p11, p12, p13, p14, Parameter15, Parameter16);
		}
		public static Method<P6, P7, P8, P9, P10, P11, P12, P13, P14> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), p15, p16).Call6;
		}
		public void Call6(P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, Parameter16);
		}
		public static Method<P6, P7, P8, P9, P10, P11, P12, P13, P14, P15> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15), p16).Call6;
		}
		public void Call6(P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16);
		}
		public static Method<P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15), default(P16)).Call6;
		}
		public static Method<P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15), default(P16)).Call6;
		}
		public void Call7(P7 p7)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P7> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, default(P7), p8, p9, p10, p11, p12, p13, p14, p15, p16).Call7;
		}
		public void Call7(P7 p7, P8 p8)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P7, P8> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), p9, p10, p11, p12, p13, p14, p15, p16).Call7;
		}
		public void Call7(P7 p7, P8 p8, P9 p9)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P7, P8, P9> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), p10, p11, p12, p13, p14, p15, p16).Call7;
		}
		public void Call7(P7 p7, P8 p8, P9 p9, P10 p10)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, p10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P7, P8, P9, P10> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10), p11, p12, p13, p14, p15, p16).Call7;
		}
		public void Call7(P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, p10, p11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P7, P8, P9, P10, P11> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10), default(P11), p12, p13, p14, p15, p16).Call7;
		}
		public void Call7(P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, p10, p11, p12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P7, P8, P9, P10, P11, P12> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), p13, p14, p15, p16).Call7;
		}
		public void Call7(P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, p10, p11, p12, p13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P7, P8, P9, P10, P11, P12, P13> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), p14, p15, p16).Call7;
		}
		public void Call7(P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, p10, p11, p12, p13, p14, Parameter15, Parameter16);
		}
		public static Method<P7, P8, P9, P10, P11, P12, P13, P14> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), p15, p16).Call7;
		}
		public void Call7(P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, p10, p11, p12, p13, p14, p15, Parameter16);
		}
		public static Method<P7, P8, P9, P10, P11, P12, P13, P14, P15> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15), p16).Call7;
		}
		public void Call7(P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16);
		}
		public static Method<P7, P8, P9, P10, P11, P12, P13, P14, P15, P16> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15), default(P16)).Call7;
		}
		public static Method<P7, P8, P9, P10, P11, P12, P13, P14, P15, P16> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15), default(P16)).Call7;
		}
		public void Call8(P8 p8)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P8> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), p9, p10, p11, p12, p13, p14, p15, p16).Call8;
		}
		public void Call8(P8 p8, P9 p9)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P8, P9> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), p10, p11, p12, p13, p14, p15, p16).Call8;
		}
		public void Call8(P8 p8, P9 p9, P10 p10)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, p10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P8, P9, P10> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10), p11, p12, p13, p14, p15, p16).Call8;
		}
		public void Call8(P8 p8, P9 p9, P10 p10, P11 p11)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, p10, p11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P8, P9, P10, P11> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10), default(P11), p12, p13, p14, p15, p16).Call8;
		}
		public void Call8(P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, p10, p11, p12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P8, P9, P10, P11, P12> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10), default(P11), default(P12), p13, p14, p15, p16).Call8;
		}
		public void Call8(P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, p10, p11, p12, p13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P8, P9, P10, P11, P12, P13> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), p14, p15, p16).Call8;
		}
		public void Call8(P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, p10, p11, p12, p13, p14, Parameter15, Parameter16);
		}
		public static Method<P8, P9, P10, P11, P12, P13, P14> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), p15, p16).Call8;
		}
		public void Call8(P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, p10, p11, p12, p13, p14, p15, Parameter16);
		}
		public static Method<P8, P9, P10, P11, P12, P13, P14, P15> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15), p16).Call8;
		}
		public void Call8(P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, p10, p11, p12, p13, p14, p15, p16);
		}
		public static Method<P8, P9, P10, P11, P12, P13, P14, P15, P16> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15), default(P16)).Call8;
		}
		public static Method<P8, P9, P10, P11, P12, P13, P14, P15, P16> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15), default(P16)).Call8;
		}
		public void Call9(P9 p9)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P9> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), p10, p11, p12, p13, p14, p15, p16).Call9;
		}
		public void Call9(P9 p9, P10 p10)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, p10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P9, P10> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10), p11, p12, p13, p14, p15, p16).Call9;
		}
		public void Call9(P9 p9, P10 p10, P11 p11)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, p10, p11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P9, P10, P11> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10), default(P11), p12, p13, p14, p15, p16).Call9;
		}
		public void Call9(P9 p9, P10 p10, P11 p11, P12 p12)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, p10, p11, p12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P9, P10, P11, P12> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10), default(P11), default(P12), p13, p14, p15, p16).Call9;
		}
		public void Call9(P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, p10, p11, p12, p13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P9, P10, P11, P12, P13> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10), default(P11), default(P12), default(P13), p14, p15, p16).Call9;
		}
		public void Call9(P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, p10, p11, p12, p13, p14, Parameter15, Parameter16);
		}
		public static Method<P9, P10, P11, P12, P13, P14> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), p15, p16).Call9;
		}
		public void Call9(P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, p10, p11, p12, p13, p14, p15, Parameter16);
		}
		public static Method<P9, P10, P11, P12, P13, P14, P15> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15), p16).Call9;
		}
		public void Call9(P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, p10, p11, p12, p13, p14, p15, p16);
		}
		public static Method<P9, P10, P11, P12, P13, P14, P15, P16> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15), default(P16)).Call9;
		}
		public static Method<P9, P10, P11, P12, P13, P14, P15, P16> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15), default(P16)).Call9;
		}
		public void Call10(P10 p10)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, p10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P10> At10(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10), p11, p12, p13, p14, p15, p16).Call10;
		}
		public void Call10(P10 p10, P11 p11)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, p10, p11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P10, P11> At10(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10), default(P11), p12, p13, p14, p15, p16).Call10;
		}
		public void Call10(P10 p10, P11 p11, P12 p12)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, p10, p11, p12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P10, P11, P12> At10(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10), default(P11), default(P12), p13, p14, p15, p16).Call10;
		}
		public void Call10(P10 p10, P11 p11, P12 p12, P13 p13)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, p10, p11, p12, p13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P10, P11, P12, P13> At10(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10), default(P11), default(P12), default(P13), p14, p15, p16).Call10;
		}
		public void Call10(P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, p10, p11, p12, p13, p14, Parameter15, Parameter16);
		}
		public static Method<P10, P11, P12, P13, P14> At10(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10), default(P11), default(P12), default(P13), default(P14), p15, p16).Call10;
		}
		public void Call10(P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, p10, p11, p12, p13, p14, p15, Parameter16);
		}
		public static Method<P10, P11, P12, P13, P14, P15> At10(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10), default(P11), default(P12), default(P13), default(P14), default(P15), p16).Call10;
		}
		public void Call10(P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, p10, p11, p12, p13, p14, p15, p16);
		}
		public static Method<P10, P11, P12, P13, P14, P15, P16> At10(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10), default(P11), default(P12), default(P13), default(P14), default(P15), default(P16)).Call10;
		}
		public static Method<P10, P11, P12, P13, P14, P15, P16> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10), default(P11), default(P12), default(P13), default(P14), default(P15), default(P16)).Call10;
		}
		public void Call11(P11 p11)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, p11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P11> At11(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, Delegate f, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, default(P11), p12, p13, p14, p15, p16).Call11;
		}
		public void Call11(P11 p11, P12 p12)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, p11, p12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P11, P12> At11(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, Delegate f, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, default(P11), default(P12), p13, p14, p15, p16).Call11;
		}
		public void Call11(P11 p11, P12 p12, P13 p13)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, p11, p12, p13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P11, P12, P13> At11(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, Delegate f, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, default(P11), default(P12), default(P13), p14, p15, p16).Call11;
		}
		public void Call11(P11 p11, P12 p12, P13 p13, P14 p14)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, p11, p12, p13, p14, Parameter15, Parameter16);
		}
		public static Method<P11, P12, P13, P14> At11(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, Delegate f, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, default(P11), default(P12), default(P13), default(P14), p15, p16).Call11;
		}
		public void Call11(P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, p11, p12, p13, p14, p15, Parameter16);
		}
		public static Method<P11, P12, P13, P14, P15> At11(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, Delegate f, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, default(P11), default(P12), default(P13), default(P14), default(P15), p16).Call11;
		}
		public void Call11(P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, p11, p12, p13, p14, p15, p16);
		}
		public static Method<P11, P12, P13, P14, P15, P16> At11(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, default(P11), default(P12), default(P13), default(P14), default(P15), default(P16)).Call11;
		}
		public static Method<P11, P12, P13, P14, P15, P16> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, default(P11), default(P12), default(P13), default(P14), default(P15), default(P16)).Call11;
		}
		public void Call12(P12 p12)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, p12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P12> At12(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, Delegate f, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, default(P12), p13, p14, p15, p16).Call12;
		}
		public void Call12(P12 p12, P13 p13)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, p12, p13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P12, P13> At12(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, Delegate f, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, default(P12), default(P13), p14, p15, p16).Call12;
		}
		public void Call12(P12 p12, P13 p13, P14 p14)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, p12, p13, p14, Parameter15, Parameter16);
		}
		public static Method<P12, P13, P14> At12(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, Delegate f, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, default(P12), default(P13), default(P14), p15, p16).Call12;
		}
		public void Call12(P12 p12, P13 p13, P14 p14, P15 p15)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, p12, p13, p14, p15, Parameter16);
		}
		public static Method<P12, P13, P14, P15> At12(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, Delegate f, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, default(P12), default(P13), default(P14), default(P15), p16).Call12;
		}
		public void Call12(P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, p12, p13, p14, p15, p16);
		}
		public static Method<P12, P13, P14, P15, P16> At12(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, default(P12), default(P13), default(P14), default(P15), default(P16)).Call12;
		}
		public static Method<P12, P13, P14, P15, P16> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, default(P12), default(P13), default(P14), default(P15), default(P16)).Call12;
		}
		public void Call13(P13 p13)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, p13, Parameter14, Parameter15, Parameter16);
		}
		public static Method<P13> At13(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, Delegate f, P14 p14, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, default(P13), p14, p15, p16).Call13;
		}
		public void Call13(P13 p13, P14 p14)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, p13, p14, Parameter15, Parameter16);
		}
		public static Method<P13, P14> At13(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, Delegate f, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, default(P13), default(P14), p15, p16).Call13;
		}
		public void Call13(P13 p13, P14 p14, P15 p15)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, p13, p14, p15, Parameter16);
		}
		public static Method<P13, P14, P15> At13(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, Delegate f, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, default(P13), default(P14), default(P15), p16).Call13;
		}
		public void Call13(P13 p13, P14 p14, P15 p15, P16 p16)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, p13, p14, p15, p16);
		}
		public static Method<P13, P14, P15, P16> At13(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, default(P13), default(P14), default(P15), default(P16)).Call13;
		}
		public static Method<P13, P14, P15, P16> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, default(P13), default(P14), default(P15), default(P16)).Call13;
		}
		public void Call14(P14 p14)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, p14, Parameter15, Parameter16);
		}
		public static Method<P14> At14(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, Delegate f, P15 p15, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, default(P14), p15, p16).Call14;
		}
		public void Call14(P14 p14, P15 p15)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, p14, p15, Parameter16);
		}
		public static Method<P14, P15> At14(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, Delegate f, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, default(P14), default(P15), p16).Call14;
		}
		public void Call14(P14 p14, P15 p15, P16 p16)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, p14, p15, p16);
		}
		public static Method<P14, P15, P16> At14(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, default(P14), default(P15), default(P16)).Call14;
		}
		public static Method<P14, P15, P16> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, default(P14), default(P15), default(P16)).Call14;
		}
		public void Call15(P15 p15)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, p15, Parameter16);
		}
		public static Method<P15> At15(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, Delegate f, P16 p16)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, default(P15), p16).Call15;
		}
		public void Call15(P15 p15, P16 p16)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, p15, p16);
		}
		public static Method<P15, P16> At15(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, default(P15), default(P16)).Call15;
		}
		public static Method<P15, P16> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, default(P15), default(P16)).Call15;
		}
		public void Call16(P16 p16)
		{
			F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, p16);
		}
		public static Method<P16> At16(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, default(P16)).Call16;
		}
		public static Method<P16> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, Delegate f)
		{
			return new AMethod<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, default(P16)).Call16;
		}
	}
}
